2013-06-04 39 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

相關問題