httpcomponents 4.5.2 簡單使用

HttpComponents 也就是之前的httpclient項目,能夠用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端/服務器編程工具包,而且它支持 HTTP 協議最新的版本和建議。不過如今的 HttpComponents 包含多個子項目,有:
java

  • HttpComponents Coreapache

  • HttpComponents Client編程

  • HttpComponents AsyncClient瀏覽器

  • Commons HttpClient
    服務器

如下列出的是 HttpClient 提供的主要的功能,要知道更多詳細的功能能夠參見 HttpClient 的主頁。工具

  • 實現了全部 HTTP 的方法(GET,POST,PUT,HEAD 等)post

  • 支持自動轉向ui

  • 支持 HTTPS 協議google

  • 支持代理服務器等spa

  • 支持Cookie


以前用的HttpClient的方法都失效了,好比 httpclinet =new DefaultHttpClient(); 不知道爲啥包裏80%的類都失效了,老是以爲建立一個httpclient實例會比較麻煩,記不住。因此整理了一下新的方式簡單使用。

簡單使用

導入jar包

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.2</version>
</dependency>


get請求獲取響應

CloseableHttpClient httpClient= HttpClients.createDefault();
HttpGet httpget = new HttpGet("http://www.baidu.com");
CloseableHttpResponse response = httpClient.execute(httpget);
HttpEntity httpEntity= response.getEntity();
String strResult= EntityUtils.toString(httpEntity);

post請求獲取響應

HttpPost httpost = new HttpPost("https://www.baidu.com");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("IDToken1", "username"));
nvps.add(new BasicNameValuePair("IDToken2", "password"));
httpost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));

HttpClient提供URIBuilder工具類來簡化URIs的建立和修改過程。

URI uri = new URIBuilder()  
        .setScheme("http")  
        .setHost("www.google.com")  
        .setPath("/search")  
        .setParameter("q", "httpclient")  
        .setParameter("btnG", "Google Search")  
        .setParameter("aq", "f")  
        .setParameter("oq", "")  
        .build();  
HttpGet httpget = new HttpGet(uri);  
System.out.println(httpget.getURI())

模擬瀏覽器請求

httpget.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0");

博客地址:http://my.oschina.net/wangnian

相關文章
相關標籤/搜索