4
我有一个RestService接口与许多休息调用,我用我的应用程序。处理连接和读取超时的RestClient调用android
我设置超时处理connection
和read-timeouts
ClientHttpRequestFactory httpFactory = myRestService.getRestTemplate().getRequestFactory();
if(httpFactory!=null)
{
if(httpFactory instanceof SimpleClientHttpRequestFactory)
{
((SimpleClientHttpRequestFactory)httpFactory).setConnectTimeout(10*1000);
((SimpleClientHttpRequestFactory)httpFactory).setReadTimeout(30*1000);
}
else if(httpFactory instanceof HttpComponentsClientHttpRequestFactory)
{
((HttpComponentsClientHttpRequestFactory)httpFactory).setConnectTimeout(10*1000);
((HttpComponentsClientHttpRequestFactory)httpFactory).setReadTimeout(30*1000);
}
}
但我坚持处理超时的情况。 我想过使用这种方法,但是当休息呼叫失败时它不会进入这个循环。
myRestService.getRestTemplate().setErrorHandler(new ResponseErrorHandler()
{
@Override
public boolean hasError(ClientHttpResponse paramClientHttpResponse) throws IOException
{
Log.e(TAG, paramClientHttpResponse==null?"Null response" : ("Has Error : " + paramClientHttpResponse.getStatusText()+" , status code : "+paramClientHttpResponse.getStatusCode()));
return false;
}
@Override
public void handleError(ClientHttpResponse paramClientHttpResponse) throws IOException
{
Log.e(TAG, paramClientHttpResponse==null?"Null response":("Handle Error : " + paramClientHttpResponse.getStatusText()+" , status code : "+paramClientHttpResponse.getStatusCode()));
}
});
任何人都可以帮助我这个..!?
感谢@alexei,感谢您的回复和建议。我已经添加了该标签。关于这个问题,我正在处理像你已经解释的REstClientException。我需要的是尝试获取Exception内部处理程序并在那里处理它。在SocketTimeoutExceptions的情况下,我想用消息左右在客户端中正常处理它。我在这个答案中评论相同:http://stackoverflow.com/a/14320675/1237656。请看一看..! – DroidBee 2013-05-23 11:47:33
那么,我已经找到了这个问题的请求,但没有得到应有的回应。 http://forum.springsource.org/showthread.php?98449-Socket-read-timeout-exception-handling-with-http-gateway – 2013-05-23 12:58:29