HttpClient是Apache公司的產品,是Http Components下的一個子組件java
2. 特色json
1. 基於標準、純淨的java語言。實現了Http1.0、Http1.1。服務器
2. 能夠擴展的面向對象的結構實現了http的所有方法(get,post,put,delete,head,options,andtrace)cookie
3.支持Https協議。app
4.經過http代理建議透明的鏈接。post
5. 自動處理Set-cookie中的cookie。this
3.使用 -- 建立httpClient客戶端.net
public class HttpTests{ CloseableHttpClient httpClient; @Before public void init(){ // 建立httpClient的客戶端 httpClient = HttpClients.createDefault(); } }
3.1 發起get請求代理
@Test public void testGet() throws IOException{ // 發起什麼請求就new什麼, 好比new HttpPost 等等.... HttpGet request= new HttpGet('http://www.baidu.com'); // 執行請求 String response = this.httpClient.execute(request,new BasicResponseHandler()); system.out.println(response); }
3.2 發起post請求code
@Test public void testPost() throws IOException{ // 發起什麼請求就new什麼, 好比new HttpPost 等等.... HttpPost request= new HttpPost('https://my.oschina.net'); // 設置請求頭,欺騙一下開源中國。由於開源中國限制爬蟲訪問 request.setHeader("user-agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"); // 執行請求 String response = this.httpClient.execute(request,new BasicResponseHandler()); system.out.println(response); }
3.3 使用Get請求訪問本身的服務器,實現遠程調用
@Test public void testGetPojo() throws IOException{ // 發起請求 // http://localhost:8080/hello 服務器地址 HttpGet request= new HttpGet('http://localhost:8080/hello'); // 執行請求,得到json數據 String response = this.httpClient.execute(request,new BasicResponseHandler()); // json數據轉爲對象數據即可, 可以使用ObjectMapper system.out.println(response); }