2013-06-04 37 views
2

我想知道如果web服务器关闭(由于流量大等原因),在Apache HttpClient(Android)中抛出哪个异常,因此可能无法提供正确的http响应我的http请求。HttpClient:服务器关闭时会抛出哪个异常

这是一个简单的SocketTimeoutException或其他?

我想通过显示服务器可能关闭的简单消息来确保我的应用能够处理服务器故障情况。

+0

你为什么不尝试呢?我会非常有兴趣知道答案。 – verybadalloc

+0

我认为SocketTimeoutException将被抛出,如果服务器宕机 –

回答

3
org.apache.commons.httpclient.NoHttpResponseException 

java.io.IOException 
    +- org.apache.commons.httpclient.NoHttpResponseException 

在某些情况下,通常是在大负荷下,Web服务器可能能够接收请求,但无法处理它们。缺乏像工作线程这样充足的资源就是一个很好的例子。这可能会导致服务器断开与客户端的连接,而没有提供任何响应。 HttpClient遇到这种情况时会抛出NoHttpResponseException。在大多数情况下,重新尝试使用NoHttpResponseException失败的方法是安全的。

http://hc.apache.org/httpclient-3.x/exception-handling.html

+0

NoHttpResponseException:“在某些情况下,通常在负载较重的情况下,Web服务器可能能够接收请求但无法处理它们“,关于NoHttpResponseException的文档说。所以这似乎是正确的方法。你有这种异常类型的一些负面经验@Selvin – sockeqwe

+0

我根本无法测试它,但这似乎是我寻找的例外! – sockeqwe

0

我认为这将是一个IOException

+0

是的,但这似乎不够具体...... – sockeqwe

相关问题