Apache HttpClient の HttpRequestRetryHandler でリトライをカスタマイズするサンプル

Apache HttpClient の DefaultHttpRequestRetryHandler は ConnectTimeoutException のときはリトライしない - kntmr-blog

これの続き。

雑ですが、HttpRequestRetryHandler でリトライをカスタマイズするサンプルを書いてみました。ついでにリトライの間隔を指定できるようにしました。

gist.github.com

使うときはこんな感じ。

MyRetriableHttpClient client = new MyRetriableHttpClient(url).setTimeout(5000, 5000).setRetry(3, 3000);
try {
    Optional<String> resp = client.execute();
    resp.ifPresent(System.out::println);
} catch (IOException e) {
    // error
}