这东西用了一年多,突然又回到了一个异常。
下面是一些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
它可能是什么,我怎么解决它?
发布于 2014-10-26 17:29:44
尝试int status = conn.getResponseCode();查看状态。
然后试试InputStream error = conn.getErrorStream();
这些方法来自HttpURLConnection。
您可能会得到FileNotFoundException作为web服务器返回404的指示。这是public InputStream getErrorStream()的javadoc
如果连接失败,但服务器仍然发送有用的数据,则返回错误流。典型的例子是当HTTP服务器使用404进行响应时,这将导致在connect中抛出一个FileNotFoundException,但是服务器发送了一个help,并给出了有关应该做什么的建议。 此方法不会导致启动连接。如果连接没有连接,或者服务器连接时没有错误,或者服务器有错误但没有发送错误数据,则此方法将返回null。这是默认的。 返回:如果存在错误流,则为null,如果没有错误,则连接没有连接,或者服务器没有发送有用的数据。
另外,对于类似于您的情况(“我在浏览器中收到页面罚款,但当我试图通过HttpURLConnection访问它时得到了404”),请检查这个答案以查看添加了一些请求属性:
URLConnection FileNotFoundException for non-standard HTTP port sources
https://stackoverflow.com/questions/26575675
复制相似问题