reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));开始返回异常

时间:2014-10-26 17:14:05

标签: android bufferedreader urlconnection

这件事工作了一年多,突然开始回归异常

这里有一些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

它可能是什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

尝试int status = conn.getResponseCode();查看状态 然后尝试InputStream error = conn.getErrorStream();
这些方法来自HttpURLConnection

您可能会收到FileNotFoundException作为Web服务器返回404的指示。 这是public InputStream getErrorStream()的javadoc:

  

如果连接失败但服务器已发送,则返回错误流   但有用的数据。典型的例子是HTTP服务器   以404响应,这将导致FileNotFoundException   抛出连接,但服务器发送了一个HTML帮助页面   关于做什么的建议。

     

此方法不会导致启动连接。如果   连接未连接,或者服务器没有错误   连接时或服务器有错误但没有错误数据   发送后,此方法将返回null。这是默认值。

     

返回:       错误流(如果有),如果没有错误,则为null,连接未连接或服务器未发送任何有用数据。


此外,对于与您类似的情况("我在浏览器中收到该页面很好,但是当我尝试通过HttpURLConnection访问它时得到404。"),请检查此答案以查看添加一些要求的房产:
URLConnection FileNotFoundException for non-standard HTTP port sources