English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文では3基本点:
1、多くの企業の内網にはプロキシが設定されており、ブラウザはIPとポートを通じてインターネットに接続しますが、JavaコードがHTTP GETメソッドをシミュレートする場合もインターネットプロキシが必要です;
2、JavaでHTTPのGETを実現/POSTリクエストコード;
3、主にHttpURLConnectionリクエストヘッダー内の属性を設定
例えばCookie、User-エージェント(ブラウザの種類)など。
例えば:HTTPリクエストにヘッダーを追加
conn.setRequestProperty("Authorization", authorization);
注:我就在网上找的一段Get/Post模拟请求代码,添加了下代理的配置,整合完成的。
package com.pasier.quanzi.web.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.List; import java.util.Map; public class HttpRequest { // 10.22.432"); 808 // // System.out.println(sendGet( "http:// 12=yyy"));", "第15段":"=xxx¶m", "第16段":""param", "第17段":"www.baidu.com", // POST リクエストを送信 } /** * 指定された URL に GET メソッドのリクエストを送信 * * 向指定 URL 發送 POST 方法的請求 * 送信する URL * @param param * 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。 * @return URL が表す遠隔リソースの応答結果 */ public static String sendGet(String url, String param) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + // 開啟與URL之間的連接 // 設定一般的請求屬性 */*"); connection.setRequestProperty("connection", "Keep-Alive", "第2段":"connection.setRequestProperty("accept", "", "第3段":"URLConnection connection = realUrl.openConnection();", "第4段":"URL realUrl = new URL(urlNameString);", "第5段":"param;-Alive"); connection.setRequestProperty("user"-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"; // 建立實際的連接 connection.connect(); // 獲取所有反應頭字段 Map<String, List<String>> map = connection.getHeaderFields(); // 遍歷所有的反應頭字段 for (String key : map.keySet()) { System.out.println(key + "---">" + map.get(key)); } // 定義 BufferedReader 輸入流以讀取 URL 的反應 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("發送 GET 請求出現異常!" + e); e.printStackTrace(); } // 使用 finally 块來關閉輸入流 finally { try { if (in != null) { in.close(); } catch (Exception e2} ) {2e } } return result; } /** * .printStackTrace(); * * 向指定 URL 發送 POST 方法的請求 * @param url * @param param * 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。 * @return 表示遠端資源的反應結果 */ public static String sendPost(String url, String param) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 開啟與URL之間的連接 URLConnection conn = realUrl.openConnection(); // 設定一般的請求屬性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"; // POSTリクエストを送信するには、以下の2行を設定する必要があります conn.setDoOutput(true); conn.setDoInput(true); // URLConnectionオブジェクトが対応する出力ストリームを取得します out = new PrintWriter(conn.getOutputStream()); // リクエストパラメータを送信します out.print(param); // 出力ストリームのバッファをフラッシュします out.flush(); // URLの応答を読み取るためのBufferedReader入力ストリームを定義します in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("POSTリクエストの送信中に例外が発生しました!" + e); e.printStackTrace(); } // finallyブロックを使用して、出力ストリーム、入力ストリームを閉じます finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } }
以上のjavaのhttpのGetシミュレーション/Post リクエスト、ipとportのプロキシを設定する方法は、編集者が皆さんに共有したすべての内容です。皆さんに参考になれば幸いですし、ガイドのサポートを多くいただければと思います。