zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    eclipse里maven项目An error occurred while filtering resources解决办法
    python中分页使用
    es学习
    cmdb资产管理2
    saltstack安装使用
    Django Rest Framework
    免交互批量分发公钥的实现
    单链表复制早已难不到你,但若我们再加个指针...
    面试 16:栈的压入压出队列(剑指 Offer 第 22 题)
    面试 15:顺时针从外往里打印数字(剑指 Offer 第 20 题)
  • 原文地址:https://www.cnblogs.com/erbin/p/4414901.html
Copyright © 2011-2022 走看看