一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java模擬http的Get/Post請求,并設置ip與port代理的方法

java模擬http的Get/Post請求,并設置ip與port代理的方法

2020-08-13 12:02JAVA教程網 Java教程

下面小編就為大家帶來一篇java模擬http的Get/Post請求,并設置ip與port代理的方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文涉及3個基本點:

1、因為很多公司的內網都設有代理,瀏覽器通過ip與port上網,而java代碼模擬http get方式同樣需要外網代理;

2、Java實現http的Get/Post請求代碼;

3、主要是設置HttpURLConnection請求頭里面的屬性

比如Cookie、User-Agent(瀏覽器類型)等等。

比如:http請求中添加Header

?
1
conn.setRequestProperty("Authorization", authorization);

注:我就在網上找的一段Get/Post模擬請求代碼,添加了下代理的配置,整合完成的。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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 {
 
  public static void main(String[] args) {
    // 如果不設置,只要代理IP和代理端口正確,此項不設置也可以
    System.getProperties().setProperty("http.proxyHost", "10.22.40.32");
    System.getProperties().setProperty("http.proxyPort", "8080");
    // 判斷代理是否設置成功
    // 發送 GET 請求
    System.out.println(sendGet(
        "http://www.baidu.com",
        "param1=xxx&param2=yyy"));
    // 發送 POST 請求
  }
 
  /**
   * 向指定URL發送GET方法的請求
   *
   * @param url
   *      發送請求的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 + "?" + param;
      URL realUrl = new URL(urlNameString);
      // 打開和URL之間的連接
      URLConnection connection = realUrl.openConnection();
      // 設置通用的請求屬性
      connection.setRequestProperty("accept", "*/*");
      connection.setRequestProperty("connection", "Keep-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) {
        e2.printStackTrace();
      }
    }
    return result;
  }
 
  /**
   * 向指定 URL 發送POST方法的請求
   *
   * @param url
   *      發送請求的 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請求必須設置如下兩行
      conn.setDoOutput(true);
      conn.setDoInput(true);
      // 獲取URLConnection對象對應的輸出流
      out = new PrintWriter(conn.getOutputStream());
      // 發送請求參數
      out.print(param);
      // flush輸出流的緩沖
      out.flush();
      // 定義BufferedReader輸入流來讀取URL的響應
      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代理的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 视频精品一区二区三区 | 99视频精品全部免费观看 | 成人xxxxxx| 爱色成人网 | 婷婷婷色 | 91人成网站色www | 欧美性另类69xxxx | ipx-177绝对领域在线观看 | 国产普通话对白露脸流出 | 我与么公激情性完整视频 | 日本漫画工囗全彩内番e绅 日本伦理动漫在线观看 | 日本视频在线免费观看 | 日本搜子同屋的日子2国语 日本爽p大片免费观看 | 国产成人无精品久久久 | 亚洲AV国产福利精品在现观看 | 色狠狠狠狠狠香蕉 | 麻生希在线观看 | 国产美女做爰免费视频软件 | 精品免费视在线视频观看 | 日韩操比视频 | 欧洲美女bbbxxxxxx | 精品国产日韩亚洲一区在线 | a级动漫| 日本久久免费大片 | 色婷婷影院在线视频免费播放 | 性bbbb妇女激情 | free service性v极品 | 四虎国产免费 | 丝瓜草莓香蕉绿巨人幸福宝 | 久久视热频国产这里只有精品23 | 亚洲精品无码不卡在线观看 | 国产永久免费爽视频在线 | 我的漂亮朋友在线观看全集免费 | 欧美高清在线不卡免费观看 | 护士的小嫩嫩好紧好舒服 | 日本三级免费看 | 国内精品哆啪啪 | 色综合 成人 | 无人在线高清免费看 | xxx86日本人 xxnx日本免费护士 | 国产午夜精品一区二区三区不卡 |