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

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|

服務器之家 - 編程語言 - JAVA教程 - java發送HttpClient請求及接收請求結果過程的簡單實例

java發送HttpClient請求及接收請求結果過程的簡單實例

2020-07-01 11:28java教程網 JAVA教程

下面小編就為大家帶來一篇java發送HttpClient請求及接收請求結果過程的簡單實例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一.

1、寫一個HttpRequestUtils工具類,包括post請求和get請求

java" id="highlighter_553484">
?
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
package com.brainlong.framework.util.httpclient;
import net.sf.json.JSONObject;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;import java.net.URLDecoder; public class HttpRequestUtils { 
private static Logger logger = LoggerFactory.getLogger(HttpRequestUtils.class); 
//日志記錄   /**   * httpPost   * @param url 路徑   * @param jsonParam 參數   * @return   */ 
public static JSONObject httpPost(String url,JSONObject jsonParam){   
return httpPost(url, jsonParam, false); 
}  
/**   * post請求   * @param url     url地址   * @param jsonParam   參數   * @param noNeedResponse  不需要返回結果   * @return   */
public static JSONObject httpPost(String url,JSONObject jsonParam, boolean noNeedResponse){   
//post請求返回結果   
DefaultHttpClient httpClient = new DefaultHttpClient();   
JSONObject jsonResult = null;   
HttpPost method = new HttpPost(url);   
try {     
if (null != jsonParam) {       
//解決中文亂碼問題       
StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");       
entity.setContentEncoding("UTF-8");       
entity.setContentType("application/json");       
method.setEntity(entity);      }     
HttpResponse result = httpClient.execute(method);     
url = URLDecoder.decode(url, "UTF-8");     
/**請求發送成功,并得到響應**/     
if (result.getStatusLine().getStatusCode() == 200) {       
String str = "";       
try {         
/**讀取服務器返回過來的json字符串數據**/         
str = EntityUtils.toString(result.getEntity());         
if (noNeedResponse) {           
return null;         
}         
/**把json字符串轉換成json對象**/         
jsonResult = JSONObject.fromObject(str);       
} catch (Exception e) {         
logger.error("post請求提交失敗:" + url, e);       
}     
}   
} catch (IOException e) {     
logger.error("post請求提交失敗:" + url, e);   
}   
return jsonResult; 
}  
/**   * 發送get請求   * @param url  路徑   * @return   */
public static JSONObject httpGet(String url){   
//get請求返回結果   
JSONObject jsonResult = null;   
try {     
DefaultHttpClient client = new DefaultHttpClient();     
//發送get請求     
HttpGet request = new HttpGet(url);     
HttpResponse response = client.execute(request);      
/**請求發送成功,并得到響應**/     
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {       
/**讀取服務器返回過來的json字符串數據**/       
String strResult = EntityUtils.toString(response.getEntity());       
/**把json字符串轉換成json對象**/       
jsonResult = JSONObject.fromObject(strResult);       
url = URLDecoder.decode(url, "UTF-8");     
} else {       
logger.error("get請求提交失敗:" + url);     
}   
} catch (IOException e) {     
logger.error("get請求提交失敗:" + url, e);   
}   
return jsonResult;  }}

2、寫業務代碼發送Http請求

3、MVC配置文件設置Controller掃描目錄

?
1
2
3
4
<!-- 自動掃描且只掃描@Controller -->
<context:component-scan base-package="com.wiselong.multichannel" use-default-filters="false"
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

4、接收Http請求

接收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
@Controller
 
@RequestMapping(value = "/api/platform/exceptioncenter/exceptioninfo")
 
public class ExceptionInfoController {
 
//注入
 
@Autowired
 
private ExceptionInfoBiz exceptionInfoBiz;
 
 
 
/**
 
* 創建異常信息請求
 
* @param requestBody 請求消息內容
 
* @param request 請求消息頭
 
* @return jsonObject
 
*/
 
@RequestMapping(
 
value="/create",
 
method = RequestMethod.POST
 
)
 
public ModelAndView createExceptionInfo(@RequestBody String requestBody, HttpServletRequest request) {
 
JSONObject jsonObject = JSONObject.fromObject(requestBody);
 
ComExceptionInfo comExceptionInfo = new ComExceptionInfo();
 
comExceptionInfo.setProjectName(jsonObject.getString("projectName"));
 
comExceptionInfo.setTagName(jsonObject.getString("tagName"));
 
exceptionInfoBiz.insert(comExceptionInfo);
 
//返回請求結果
 
JSONObject result= new JSONObject();
 
result.put("success""true");
 
return new ModelAndView("", ResponseUtilsHelper.jsonSuccess(result.toString()));
 
}
 
}

接收get請求

?
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
@Controller
 
@RequestMapping(value="/api/platform/messagecenter/messages/sms")
 
public class SmsController {
 
@Autowired
 
SmsSendBiz smsSendBiz;
 
 
 
/**
 
* 接收手機號碼和內容往短信發送表插入一條記錄
 
* @param requestbody 請求消息內容
 
* @param request 請求消息頭
 
* @return jsonObject
 
*/
 
@RequestMapping(
 
value="/send",
 
method= RequestMethod.GET
 
)
 
public ModelAndView sendSms(@RequestBody String requestbody, HttpServletRequest request) {
 
//獲取請求URL及url后面傳輸的參數
 
String url = request.getRequestURL() + "?" + request.getQueryString();
 
url = BuildRequestUrl.decodeUrl(url);
 
String telePhone = RequestUtils.getStringValue(request, "telePhone");
 
String content = RequestUtils.getStringValue(request, "content");
 
smsSendBiz.insertTtMsQuequ(telePhone,content);
 
return new ModelAndView("", ResponseUtilsHelper.jsonResult(""true));
 
}
 
}

二.

get

?
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
import java.io.BufferedReader;
 
import java.io.IOException;
 
import java.io.InputStream;
 
import java.io.InputStreamReader;
 
 
 
import org.apache.commons.httpclient.HttpClient;
 
import org.apache.commons.httpclient.HttpMethod;
 
import org.apache.commons.httpclient.methods.GetMethod;
 
 
 
public class H_client_get {
 
public static void main(String[] args) throws IOException {
 
// new類對象
 
HttpClient client = new HttpClient();
 
// 使用 GET 方法 與URL服務器進行交互
 
 
HttpMethod method = new GetMethod("http://192.168.111.128/bak/login.php?username=");
 
// 使用 GET 方法 ,實行與url服務器連接
 
client.executeMethod(method);
 
// 數據流輸出
 
// method.getResponseBodyAsStream 創建字節流對象為inputStream
 
InputStream inputStream = method.getResponseBodyAsStream();
 
// InputStreamReader(inputStream)字節流轉換成字符流 BufferedReader封裝成帶有緩沖的字符流對象了 
 
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
 
// StringBuffer是字符串變量,它的對象是可以擴充和修改的 創建一個空的StringBuffer類的對象 
 
StringBuffer stringBuffer = new StringBuffer();
 
// 定義字符串常量
 
String str= "";
 
// br字符流賦值給str字符串常量 str不等于空 按行輸出
 
while((str = br.readLine()) != null){ 
 
// StringBuffer 是字符串變量,它的對象是可以擴充和修改的 將str數據賦予 stringBuffer 
 
stringBuffer .append(str ); 
 
 
// 按照字符串循環輸出stringBuffer
 
System.out.println(stringBuffer.toString());
 
// 關閉method 的 httpclient連接
 
method.releaseConnection();
 
}
 
}

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
import java.io.BufferedReader;
 
import java.io.IOException;
 
import java.io.InputStream;
 
import java.io.InputStreamReader;
 
 
 
import org.apache.commons.httpclient.methods.PostMethod;
 
import org.apache.commons.httpclient.*;
 
 
 
public class H_client_post {
 
public static void main(String[] args) throws IOException {
 
HttpClient client = new HttpClient();
 
PostMethod method = new PostMethod("http://192.168.111.128/bak/login_post.php");
 
//表單域的值,既post傳入的key=value
 
NameValuePair[] date = { new NameValuePair("username","admin"),new NameValuePair("password","123457")};
 
//method使用表單閾值
 
method.setRequestBody(date);
 
//提交表單
 
client.executeMethod(method);
 
//字符流轉字節流 循環輸出,同get解釋
 
InputStream inputStream = method.getResponseBodyAsStream();
 
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
 
StringBuffer stringBuffer = new StringBuffer();
 
String str= "";
 
while((str = br.readLine()) != null){ 
 
stringBuffer .append(str ); 
 
 
System.out.println(stringBuffer.toString());
 
method.releaseConnection();
 
}
 
}

三.

Http協議的重要性相信不用我多說了,HttpClient相比傳統JDK自帶的URLConnection,增加了易用性和靈活性(具體區別,日后我們再討論),它不僅是客戶端發送Http請求變得容易,而且也方便了開發人員測試接口(基于Http協議的),即提高了開發的效率,也方便提高代碼的健壯性。因此熟練掌握HttpClient是很重要的必修內容,掌握HttpClient后,相信對于Http協議的了解會更加深入。

一、簡介

HttpClient是Apache Jakarta Common下的子項目,用來提供高效的、最新的、功能豐富的支持HTTP協議的客戶端編程工具包,并且它支持HTTP協議最新的版本和建議。HttpClient已經應用在很多的項目中,比如Apache Jakarta上很著名的另外兩個開源項目Cactus和HTMLUnit都使用了HttpClient。

二、特性

1. 基于標準、純凈的java語言。實現了Http1.0和Http1.1

2. 以可擴展的面向對象的結構實現了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。

3. 支持HTTPS協議。

4. 通過Http代理建立透明的連接。

5. 利用CONNECT方法通過Http代理建立隧道的https連接。

6. Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos認證方案。

7. 插件式的自定義認證方案。

8. 便攜可靠的套接字工廠使它更容易的使用第三方解決方案。

9. 連接管理器支持多線程應用。支持設置最大連接數,同時支持設置每個主機的最大連接數,發現并關閉過期的連接。

10. 自動處理Set-Cookie中的Cookie。

11. 插件式的自定義Cookie策略。

12. Request的輸出流可以避免流中內容直接緩沖到socket服務器。

13. Response的輸入流可以有效的從socket服務器直接讀取相應內容。

14. 在http1.0和http1.1中利用KeepAlive保持持久連接。

15. 直接獲取服務器發送的response code和 headers。

16. 設置連接超時的能力。

17. 實驗性的支持http1.1 response caching。

18. 源代碼基于Apache License 可免費獲取。

三、使用方法

使用HttpClient發送請求、接收響應很簡單,一般需要如下幾步即可。

1. 創建HttpClient對象。

2. 創建請求方法的實例,并指定請求URL。如果需要發送GET請求,創建HttpGet對象;如果需要發送POST請求,創建HttpPost對象。

3. 如果需要發送請求參數,可調用HttpGet、HttpPost共同的setParams(HetpParams params)方法來添加請求參數;對于HttpPost對象而言,也可調用setEntity(HttpEntity entity)方法來設置請求參數。

4. 調用HttpClient對象的execute(HttpUriRequest request)發送請求,該方法返回一個HttpResponse。

5. 調用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可獲取服務器的響應頭;調用HttpResponse的getEntity()方法可獲取HttpEntity對象,該對象包裝了服務器的響應內容。程序可通過該對象獲取服務器的響應內容。

6. 釋放連接。無論執行方法是否成功,都必須釋放連接

四、實例

 

 

?
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
package com.test;
 
import java.io.File;
 
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.KeyManagementException;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.util.ArrayList;
import java.util.List;
import javax.net.ssl.SSLContext;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContexts;
import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.entity.mime.content.StringBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.junit.Test;
public class HttpClientTest {
  @Test
  public void jUnitTest() {
    get();
  }
  /**
   * HttpClient連接SSL
   */
  public void ssl() {
    CloseableHttpClient httpclient = null;
    try {
      KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
      FileInputStream instream = new FileInputStream(new File("d:\\tomcat.keystore"));
      try { 54.
        // 加載keyStore d:\\tomcat.keystore 
        trustStore.load(instream, "123456".toCharArray());
      } catch (CertificateException e) {
        e.printStackTrace();
      } finally {
        try {
          instream.close();
        } catch (Exception ignore) {
        }
      }
      // 相信自己的CA和所有自簽名的證書
      SSLContext sslcontext = SSLContexts.custom().loadTrustMaterial(trustStore, new TrustSelfSignedStrategy()).build();
      // 只允許使用TLSv1協議
      SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1" }, null,
          SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
      httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
      // 創建http請求(get方式)
      HttpGet httpget = new HttpGet("https://localhost:8443/myDemo/Ajax/serivceJ.action");
      System.out.println("executing request" + httpget.getRequestLine());
      CloseableHttpResponse response = httpclient.execute(httpget);
      try {
        HttpEntity entity = response.getEntity();
        System.out.println("----------------------------------------");
        System.out.println(response.getStatusLine());
        if (entity != null) {
          System.out.println("Response content length: " + entity.getContentLength());
          System.out.println(EntityUtils.toString(entity));
          EntityUtils.consume(entity);
        }
      } finally {
        response.close();
      }
    } catch (ParseException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } catch (KeyManagementException e) {
      e.printStackTrace();
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    } catch (KeyStoreException e) {
      e.printStackTrace();
    } finally {
      if (httpclient != null) {
        try {
          httpclient.close();
        } catch (IOException e) {
          e.printStackTrace();
          
        }
      }
    }
  }
 
  /**
   * post方式提交表單(模擬用戶登錄請求)
   */
  public void postForm() {
    // 創建默認的httpClient實例. 
    CloseableHttpClient httpclient = HttpClients.createDefault();
    // 創建httppost 
    HttpPost httppost = new HttpPost("http://localhost:8080/myDemo/Ajax/serivceJ.action");
    // 創建參數隊列 
    List<namevaluepair> formparams = new ArrayList<namevaluepair>();
    formparams.add(new BasicNameValuePair("username", "admin"));
 
    formparams.add(new BasicNameValuePair("password", "123456"));
 
    UrlEncodedFormEntity uefEntity;
 
    try {
 
      uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
 
      httppost.setEntity(uefEntity);
 
      System.out.println("executing request " + httppost.getURI());
 
      CloseableHttpResponse response = httpclient.execute(httppost);
 
      try {
 
        HttpEntity entity = response.getEntity();
 
        if (entity != null) {
 
          System.out.println("--------------------------------------");
 
          System.out.println("Response content: " + EntityUtils.toString(entity, "UTF-8"));
 
          System.out.println("--------------------------------------");
 
        }
 
      } finally {
 
        response.close();
 
      }
 
    } catch (ClientProtocolException e) {
 
      e.printStackTrace();
      
 
    } catch (UnsupportedEncodingException e1) {
 
      e1.printStackTrace();
 
    } catch (IOException e) {
 
      e.printStackTrace();
 
    } finally {
 
      // 關閉連接,釋放資源 
 
      try {
 
        httpclient.close();
 
      } catch (IOException e) {
 
        e.printStackTrace();
 
      }
 
    }
 
  }
  /**
   * 發送 post請求訪問本地應用并根據傳遞參數不同返回不同結果
   */
 
  public void post() {
 
    // 創建默認的httpClient實例. 
 
    CloseableHttpClient httpclient = HttpClients.createDefault();
 
    // 創建httppost 
 
    HttpPost httppost = new HttpPost("http://localhost:8080/myDemo/Ajax/serivceJ.action");
 
    // 創建參數隊列 
 
    List<namevaluepair> formparams = new ArrayList<namevaluepair>();
 
    formparams.add(new BasicNameValuePair("type", "house"));
 
    UrlEncodedFormEntity uefEntity;
 
    try {
 
      uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
      httppost.setEntity(uefEntity);
      System.out.println("executing request " + httppost.getURI());
      CloseableHttpResponse response = httpclient.execute(httppost);
      try {
        HttpEntity entity = response.getEntity();
 
        if (entity != null) {
 
          System.out.println("--------------------------------------");
 
          System.out.println("Response content: " + EntityUtils.toString(entity, "UTF-8"));
 
          System.out.println("--------------------------------------");
 
        }
 
      } finally {
 
        response.close();
 
      }
 
    } catch (ClientProtocolException e) {
 
      e.printStackTrace();
 
    } catch (UnsupportedEncodingException e1) {
 
      e1.printStackTrace();
 
    } catch (IOException e) {
 
      e.printStackTrace();
 
    } finally {
 
      // 關閉連接,釋放資源 
 
      try {
 
        httpclient.close();
 
      } catch (IOException e) {
 
        e.printStackTrace();
 
      }
 
    }
 
  }
 
  /**
 
   * 發送 get請求
   */
 
  public void get() {
 
    CloseableHttpClient httpclient = HttpClients.createDefault();
 
    try {
 
      // 創建httpget. 
 
      HttpGet httpget = new HttpGet("http://www.baidu.com/");
 
      System.out.println("executing request " + httpget.getURI());
 
      // 執行get請求. 
 
      CloseableHttpResponse response = httpclient.execute(httpget);
 
      try {
 
        // 獲取響應實體 
        
 
        HttpEntity entity = response.getEntity();
 
        System.out.println("--------------------------------------");
 
        // 打印響應狀態 
 
        System.out.println(response.getStatusLine());
 
        if (entity != null) {
 
          // 打印響應內容長度 
 
          System.out.println("Response content length: " + entity.getContentLength());
 
          // 打印響應內容 
 
          System.out.println("Response content: " + EntityUtils.toString(entity));
 
        }
 
        System.out.println("------------------------------------");
 
      } finally {
 
        response.close();
 
      }
 
    } catch (ClientProtocolException e) {
 
      e.printStackTrace();
 
    } catch (ParseException e) {
 
      e.printStackTrace();
 
    } catch (IOException e) {
 
      e.printStackTrace();
 
    } finally {
 
      // 關閉連接,釋放資源 
 
      try {
 
        httpclient.close();
 
      } catch (IOException e) {
 
        e.printStackTrace();
 
      }
 
    }
 
  }
 
 
  /**
   * 上傳文件
 
   */
 
  public void upload() {
 
    CloseableHttpClient httpclient = HttpClients.createDefault();
 
    try {
 
      HttpPost httppost = new HttpPost("http://localhost:8080/myDemo/Ajax/serivceFile.action");
 
      FileBody bin = new FileBody(new File("F:\\image\\sendpix0.jpg"));
 
      StringBody comment = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN);
 
      HttpEntity reqEntity = MultipartEntityBuilder.create().addPart("bin", bin).addPart("comment", comment).build();
 
      httppost.setEntity(reqEntity);
 
      System.out.println("executing request " + httppost.getRequestLine());
 
      CloseableHttpResponse response = httpclient.execute(httppost);
 
      try {
 
        System.out.println("----------------------------------------");
 
        System.out.println(response.getStatusLine());
 
        HttpEntity resEntity = response.getEntity();
 
        if (resEntity != null) {
 
          System.out.println("Response content length: " + resEntity.getContentLength());
 
        }
 
        EntityUtils.consume(resEntity);
 
      } finally {
 
        response.close();
 
      }
 
    } catch (ClientProtocolException e) {
 
      e.printStackTrace();
 
    } catch (IOException e) {
 
      e.printStackTrace();
 
    } finally {
 
      try {
 
        httpclient.close();
 
      } catch (IOException e) {
 
        e.printStackTrace();
 
      }
 
    }
 
  }
 
}</namevaluepair></namevaluepair></namevaluepair></namevaluepair>

以上這篇java發送HttpClient請求及接收請求結果過程的簡單實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久99国产视频 | 99久久伊人一区二区yy5099 | 侮辱丰满美丽的人妻 | 国产在视频线在精品 | 欧洲女同同性videos0 | 草莓视频在线免费观看 | 黑人巨大精品战中国美女 | 午夜AV内射一区二区三区红桃视 | 国产第一页无线好源 | 国产51社区精品视频资源 | 国产久热香蕉在线观看 | 日本一区二区不卡久久入口 | 99久久爱热6在线播放 | 高清不卡免费一区二区三区 | 免费看h片的网站 | 黄片毛片 | 欧美va在线观看 | 欧美a级v片不卡在线观看 | 日本三级做a全过程在线观看 | 国产一区精品视频 | 超级毛片 | 欧美成人免费草草影院视频 | 日韩在线视频免费不卡一区 | 国产一区二区三区毛片 | 韩国久久 | 草草影院永久在线观看 | 亚洲天堂视频在线播放 | 丝袜足液精子免费视频 | 欧美精品一区二区三区久久 | 果冻传媒在线播放观看228集 | 成人国产一区 | 日你逼 | 亚洲热在线视频 | 奇米影视777最新在线 | 干b视频在线观看 | 亚洲精品卡1卡二卡3卡四卡 | 亚洲区在线播放 | 国产色司机在线视频免费观看 | 亚洲伦理视频 | 九九久久国产精品免费热6 九九精品视频一区二区三区 | 2018av在线|