java 发送 http请求——HttpClient

使用HttpClient来发送Http请求

引入两个包:[1]org.apache.httpcomponents.httpclient_x.x.x.jar  [2]org.apache.httpcomponents.httpcore_x.x.x.jar

下载链接:Apache HttpComponents - HttpComponents Downloads

参考文档:[1]HttpClient Tutorial  [2]HttpClient Example


 1 package http;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 
 6 import org.apache.http.Header;
 7 import org.apache.http.HttpEntity;
 8 import org.apache.http.ProtocolVersion;
 9 import org.apache.http.StatusLine;
10 import org.apache.http.client.ClientProtocolException;
11 import org.apache.http.client.config.RequestConfig;
12 import org.apache.http.client.methods.CloseableHttpResponse;
13 import org.apache.http.client.methods.HttpGet;
14 import org.apache.http.impl.client.CloseableHttpClient;
15 import org.apache.http.impl.client.HttpClients;
16 
17 
18 
19 public class HttpConnector {
20     public static void main(String[] args) {
21         CloseableHttpClient httpClient = HttpClients.createDefault();
22         RequestConfig requestConfig = RequestConfig.custom()
23                 .setConnectTimeout(1000)
24                 .setSocketTimeout(1000)
25                 .build();
26         HttpGet get = new HttpGet("http://i.easou.com/s.m?q=电影&wver=t");
27         get.setConfig(requestConfig);
28         
29         /*        
30             HttpPost post = new HttpPost("http://i.easou.com/s.m");
31             post.setConfig(requestConfig);
32             List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
33             nameValuePairs.add(new BasicNameValuePair("q", "电影"));
34             nameValuePairs.add(new BasicNameValuePair("wver", "t"));
35             UrlEncodedFormEntity urlEntity;
36             urlEntity = new UrlEncodedFormEntity(nameValuePairs,Consts.UTF_8);
37             post.setEntity(urlEntity);
38         */
39         CloseableHttpResponse response = null;
40         try {
41             response = httpClient.execute(get);
42             /*
43                 response = httpClient.execute(post);
44             */
45             StatusLine statusLine = response.getStatusLine();
46             ProtocolVersion protocolVersion = statusLine.getProtocolVersion();
47             String reasonPhrase = statusLine.getReasonPhrase();
48             int statusCode = statusLine.getStatusCode();
49             System.out.println(statusLine + "
" + protocolVersion + " " + statusCode + " " + reasonPhrase);
50             /*#############################################################################################*/
51             HttpEntity httpEntity = response.getEntity();
52             if(httpEntity != null) {
53                 Header contentType = httpEntity.getContentType();
54                 Header contentEncoding = httpEntity.getContentEncoding();
55                 long contentLength = httpEntity.getContentLength();
56                 boolean isStreaming = httpEntity.isStreaming();
57                 boolean isRepeatable = httpEntity.isRepeatable();
58                 boolean isChunked = httpEntity.isChunked();
59                 System.out.println(contentType + " | " + contentEncoding + " | " + contentLength + " | " + isStreaming + "/" + isRepeatable + "/" + isChunked);
60                 /*#############################################################################################*/
61                 InputStream is = httpEntity.getContent();
62                 byte[] buff = new byte[512];
63                 while(is.read(buff) > 0) {
64                     for(byte b : buff) {
65                         System.out.print((char) b);
66                     }
67                 }
68                 is.close();
69                 /*#############################################################################################*/
70             }
71         } catch (ClientProtocolException e) {
72             e.printStackTrace();
73         } catch (IOException e) {
74             e.printStackTrace();
75         } finally {
76             if(response != null) {
77                 try {
78                     response.close();
79                 } catch (IOException e) {
80                     e.printStackTrace();
81                 }
82             }
83         }
84         try {
85             httpClient.close();
86         } catch (IOException e) {
87             e.printStackTrace();
88         }
89     }
90     
91 }
原文地址:https://www.cnblogs.com/erbin/p/4414901.html