HttpClient 4.5版本設置連接超時時間

摘要: HttpClient 4.5版本升級後,設置超時時間的API又有新的變化,請大家關注。

        HttpClient升級到4.5版本後,API有很多變化,HttpClient 4之後,API一直沒有太穩定,我感覺4.5版本抽象後,很多API應該快穩定了。

       使用HttpClient,一般都需要設置連接超時時間和獲取數據超時時間。這兩個參數很重要,目的是爲了防止訪問其他http時,由於超時導致自己的應用受影響。

       4.5版本中,這兩個參數的設置都抽象到了RequestConfig中,由相應的Builder構建,具體的例子如下:

CloseableHttpClient httpclient = HttpClients.createDefault();  
HttpGet httpGet = new HttpGet("http://stackoverflow.com/");  
RequestConfig requestConfig = RequestConfig.custom()  
        .setConnectTimeout(5000).setConnectionRequestTimeout(1000)  
        .setSocketTimeout(5000).build();  
httpGet.setConfig(requestConfig);  
CloseableHttpResponse response = httpclient.execute(httpGet);  
System.out.println("得到的結果:" + response.getStatusLine());//得到請求結果  
HttpEntity entity = response.getEntity();//得到請求回來的數據

setConnectTimeout:設置連接超時時間,單位毫秒。

setConnectionRequestTimeout:設置從connect Manager獲取Connection 超時時間,單位毫秒。這個屬性是新加的屬性,因爲目前版本是可以共享連接池的。

setSocketTimeout:請求獲取數據的超時時間,單位毫秒。 如果訪問一個接口,多少時間內無法返回數據,就直接放棄此次調用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章