[英]Validate that the HttpClient is retrying requests
我昨晚剛剛了解了DefaultHttpRequestRetryHandler,我正在嘗試使用它並驗證我是否已正確設置它並且它會重試請求。 如何驗證(通過查看日志消息或設置(單元)測試或進行特定呼叫?
為了記錄,這是我的代碼:
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(3, true));
我已經嘗試將URL更改為不存在的端點,更改端口,更改資源位置,但我似乎無法獲得超時,我看不到代碼嘗試重試請求。
首先,我正在對REST端點進行HTTP調用,並且我想在超時的情況下重試。 但是,如果我得到一些我不知道應該做的額外功能和處理,我也很樂意免費獲得其他好處。
請查看文檔 。 並非所有例外都會重試。 默認情況下: InterruptedIOException
, UnknownHostException
, ConnectException
, SSLException
您對不良主機/端口的嘗試可能會導致未知主機,因此不會重試。 你需要超時才能發生。 使用像Charles或Fiddler這樣的代理。 或者使用其他重載的構造函數並提供自己的空例外列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.