激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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代理的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久艹国产精品 | 国产一级免费电影 | 草草在线观看 | 成人在线观看一区二区三区 | 黄色大片在线观看 | 亚洲网站免费观看 | 欧美另类视频一区 | 国产精品久久久免费看 | 欧美成人三级视频 | 高清国产福利 | 91一区二区三区久久久久国产乱 | 色婷婷久久久亚洲一区二区三区 | 国产乱free国语对白 | 国产在线观看91精品 | 91成人一区 | 久久97视频| www.精品一区| 精品亚洲一区二区 | 欧美精品激情在线 | 亚洲视频成人 | 中国av免费在线观看 | 暴力肉体进入hdxxxx0 | 久久久青青草 | 国产在线一区二区三区 | 日韩色电影| 香蕉久久久久 | 337p粉嫩大胆噜噜噜亚瑟影院 | 天堂成人国产精品一区 | 成年人黄色片视频 | 一级毛片真人免费播放视频 | 72pao成人国产永久免费视频 | 一级电影在线免费观看 | 国产在线精品一区二区 | 91精品国产91久久久久久 | 亚洲精品午夜在线 | 亚洲日本欧美 | 国产精品久久久久久影视 | 欧美精品18videos性欧美 | 羞羞视频在线免费 | 免费一及片 | 中文字幕一区在线观看视频 |