2014-10-26 28 views
1

這件事超過了今年工作了,突然開始返回異常reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));開始迴歸例外

這裏的一些AsynkTask的:

URLConnection conn = url.openConnection(); 
try 
{ 
    reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    //the rest of the code doesn't go - exception works out   
}   
catch(Exception ex) 
{ 
    Error = ex.getMessage();  
} 

現在,URL是有效的 - 我從調試和粘貼複製在瀏覽器 - 它返回我一個非常好的JSON,因爲它應該。 而這整個事情工作了一年,現在它捕捉到一個例外 - FileNotFound

它可能是什麼,我該如何解決它?

回答

0

嘗試int status = conn.getResponseCode();以查看狀態。
然後嘗試InputStream error = conn.getErrorStream();
這些方法從HttpURLConnection

你可能會得到FileNotFoundException異常爲表明Web服務器返回一個404 這是Javadoc文檔public InputStream getErrorStream()

返回錯誤流如果連接失敗但服務器發送 有用的數據仍然。典型的例子是HTTP服務器 用404響應,這將導致連接中拋出FileNotFoundException爲 ,但服務器發送了一個HTML幫助頁面,其中包含 建議如何操作。

此方法不會導致啓動連接。如果未連接 連接,或者連接時服務器沒有錯誤 ,或者服務器發生錯誤但發送的錯誤數據爲 ,則此方法將返回空值。這是默認設置。

返回: 錯誤流(如果有),如果沒有錯誤,則表示連接未連接或服務器未發送有用數據,則返回null。


此外,對於類似您這樣的情況下(「我收到的頁面在瀏覽器不錯,但有一個404,當我試圖通過HttpURLConnection類訪問它。」),檢查這個答案,看看添加一些請求屬性:
URLConnection FileNotFoundException for non-standard HTTP port sources

+0

web服務器返回404 - 但在瀏覽器中,此url顯示罰款 – 2014-10-26 17:31:55

+0

查看getErrorStream返回的內容。 – alterfox 2014-10-26 17:32:52

相關問題