这件事工作了一年多,突然开始回归异常
这里有一些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 :(得分: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