Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 即使是';s 404_Java_Http Status Code 404 - Fatal编程技术网

Java 即使是';s 404

Java 即使是';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响应,但显示在浏览器

如果getResponseCode()==404,因此getInputStream()会引发异常,那么有没有一种方法可以读取如下简单http get的响应?如果可能的话,我更愿意使用java.net

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()来实现这一点,如本答案中所述。