org.apache.httpcomponents
http客户端
4.5.1
HTTP客户端的异常分为两类
java.io.IOException
http扩展
其中,java.io.IOException认为是非致命的、可恢复的。 HttpException认为是致命的,不可恢复的。
对于java.io.IOException异常,必须实现http客户端提供的HttpRequestRetryHandler接口才能重试。
通过以下方式实现。
httprequestretryhandlermyretryhandler=newhttprequestretryhandler {
公共布尔结果请求(
io扩展扩展,
输入执行计数,
HttpContext context ) {
执行计数=5{ if }
//donotretryifovermaxretrycount
返回假;
}
扩展实例优先级扩展(if ) {
//Timeout
返回假;
}
exceptioninstanceofunknownhostexception (if ) (
//Unknown host
返回假;
}
扩展功能连接器(if ) {
//连接刷新
返回假;
}
可扩展机制(if ) {
//SSL handshake exception
返回假;
}
httpclientcontextclientcontext=http客户端上下文. adapt (context );
http request request=client context.getrequest (;
布尔识别=! (requestinstanceofhttpentityenclosingrequest;
if(idempotent
//retryiftherequestisconsideredidempotent
返回真;
}
返回假;
}
(;
closeablehttpclienthttpclient=http clients.custom (
. setretryhandler(myretryhandler ) )。
. build (;