HttpClient 5.0 設置超時時間需要使用RequestConfig類,具體方法如下:
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(10000, TimeUnit.MILLISECONDS).setConnectTimeout(10000, TimeUnit.MILLISECONDS).setResponseTimeout(10000, TimeUnit.MILLISECONDS).build();
相對於HttpClient 4.X版本,setConnectionTimeout方法需要多傳一個參數:TimeUnit(時間單位);
TimeUnit的值有:
注意:HttpClient 5.0 版本沒有setSocketTimeout方法(獲取數據的超時時間);
如不設置超時時間,默認時間是3分鍾
具體使用步驟:
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(10000, TimeUnit.MILLISECONDS).setConnectTimeout(10000, TimeUnit.MILLISECONDS).setResponseTimeout(10000, TimeUnit.MILLISECONDS).build();
//HttpClients.createDefault()等價於 HttpClientBuilder.create().build();
CloseableHttpClient closeableHttpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build();
或者:
RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(10000, TimeUnit.MILLISECONDS).setConnectTimeout(10000, TimeUnit.MILLISECONDS).setResponseTimeout(10000, TimeUnit.MILLISECONDS).build();
HttpPost httpost = new HttpPost(url);
httpost.setConfig(requestConfig);
新手程序員一枚,如有寫錯,望各位指正~