我期望这段代码返回404,但是会产生输出:

“响应代码为200”

是否有可能学习如何区分现有网页和不存在网页。 。 。非常感谢,

    try
    {
    // create the HttpURLConnection
    URL url = new URL("http://www.thisurldoesnotexist");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

    System.out.println("Response code is " + connection.getResponseCode());
    }

最佳答案

编辑:我看到你打电话给openConnection()但不是connect()-这可能是问题吗?我希望getResponseCode()实际上可以发出请求,但是值得尝试一下...



这表明您可能已经有了一些DNS解析器,该解析器可以重定向到“帮助程序”(垃圾邮件)页面或类似的页面。

准确了解此处发生情况的最简单方法是使用Wireshark-启动并捕获流量(仅HTTP,以简化生活),然后运行代码。您应该能够看到这种情况。

请注意,我不会期望404-因为这将涉及能够找到与之对话的Web服务器。如果您要尝试不涉及的主机,则根本不应该有HTTP响应。我希望connect()引发异常。

关于java - Java HTTP getResponseCode对于不存在的URL返回200,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6211251/

10-12 15:55