簡體   English   中英

驗證HttpClient是否正在重試請求

[英]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調用,並且我想在超時的情況下重試。 但是,如果我得到一些我不知道應該做的額外功能和處理,我也很樂意免費獲得其他好處。

請查看文檔 並非所有例外都會重試。 默認情況下: InterruptedIOExceptionUnknownHostExceptionConnectExceptionSSLException

您對不良主機/端口的嘗試可能會導致未知主機,因此不會重試。 你需要超時才能發生。 使用像Charles或Fiddler這樣的代理。 或者使用其他重載的構造函數並提供自己的空例外列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM