Java 即使是';s 404
如果getResponseCode()==404,因此getInputStream()会引发异常,那么有没有一种方法可以读取如下简单http get的响应?如果可能的话,我更愿意使用java.netJava 即使是';s 404,java,http-status-code-404,Java,Http Status Code 404,如果getResponseCode()==404,因此getInputStream()会引发异常,那么有没有一种方法可以读取如下简单http get的响应?如果可能的话,我更愿意使用java.net HttpURLConnection c = (HttpURLConnection)new URL("http://somesite.com").openConnection; c.openInputStream(); 问题是,我(确实)有一个我想用java读取的站点,它以404响应,但显示在浏览器
HttpURLConnection c = (HttpURLConnection)new URL("http://somesite.com").openConnection;
c.openInputStream();
问题是,我(确实)有一个我想用java读取的站点,它以404响应,但显示在浏览器中,因为它显然会破坏响应。如果getResponseCode()==404,您想使用
HttpURLConnection c = (HttpURLConnection)new URL("http://somesite.com").openConnection();
InputStream in = null;
if (c.getResponseCode() >= 400) {
in = c.getErrorStream();
}
else {
in = c.getInputStream();
}
返回null。我应该更具体地描述一下这个响应:看起来一切都很好,只是由于某种原因,响应代码被设置为404。但它必须是好的,否则,因为Firefox和Chrome显示的站点是正确的。@Hellnail我刚刚针对我的站点测试了该代码,该站点有一个非常大的自定义404错误页面,我能够读取该页面。您可以使用getErrorStream()方法,但必须首先启动连接,否则,它将返回null。您可以通过调用getInputStream()或getResponseCode()来实现这一点,如本答案中所述。