遇到问题--HttpClient默认重试策略不处理SocketTimeoutException
生活随笔
收集整理的這篇文章主要介紹了
遇到问题--HttpClient默认重试策略不处理SocketTimeoutException
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
情況
使用httpClient 4.5.3版本的默認重試策略DefaultHttpRequestRetryHandler.
httpclient默認會有三次重試,但是 生產環境 運行時 發現 超時報錯并沒有進行重試。
報錯信息如下:
Caused by: java.net.ConnectException: Connection timed out (Connection timed out) at java.net.PlainSocketImpl.socketConnect(Native Method) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)原因
httpClient默認重試策略DefaultHttpRequestRetryHandler針對連接超時和獲取數據超時并不會重試,需要自定義重試策略。
采用HttpClient 4.5.3發起http請求,代碼如下,使用方式正常
// 創建HttpClientBuilderHttpClientBuilder httpClientBuilder = HttpClientBuilder.create();CloseableHttpClient closeableHttpClient = httpClientBuilder.build();HttpGet httpGet = new HttpGet(uri);// 添加http頭信息if (needAuth) {httpGet.addHeader("Authorization","Basic " + Base64.getUrlEncoder().e總結
以上是生活随笔為你收集整理的遇到问题--HttpClient默认重试策略不处理SocketTimeoutException的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PL3369C原边12W电源芯片
- 下一篇: 【看看这长尾效应】长尾效应综述