轉 HttpClient 設置鏈接超時時間

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

        HttpClient升級到4.5版本後,API有不少變化,HttpClient 4以後,API一直沒有太穩定,我感受4.5版本抽象後,不少API應該快穩定了。java

       使用HttpClient,通常都須要設置鏈接超時時間和獲取數據超時時間。這兩個參數很重要,目的是爲了防止訪問其餘http時,因爲超時致使本身的應用受影響。ui

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

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:設置鏈接超時時間,單位毫秒。code

setConnectionRequestTimeout:設置從connect Manager獲取Connection 超時時間,單位毫秒。這個屬性是新加的屬性,由於目前版本是能夠共享鏈接池的。blog

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

相關文章
相關標籤/搜索