因此,在我的部分代码中,我试图访问一个网页,并且在该网页不存在的情况下(我正在测试),我得到了FileNotFoundException。

在sun.net.www.protocol.http.HttpURLConnection.getInputStream0(未知来源)

在sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知源)

我真的只想能够检查它是否不存在,如果不存在,我也不会打扰getInputStream或BufferedReader或其他任何东西。是否有一个简单的IF子句可以满足此要求?

oracle = new URL(scholarURL);

HttpURLConnection httpcon = (HttpURLConnection) oracle.openConnection();
httpcon.addRequestProperty("User-Agent", "Mozilla/4.76");

BufferedReader in = new BufferedReader(new InputStreamReader(httpcon.getInputStream()));

最佳答案

在获取InputStream之前,只需检索状态码。

if (con.getResponseCode() == 404) {
    // do something
    InputStream err = con.getErrorStream();
    // use it
}


请注意在发生错误(非2xx状态代码)时应如何使用UrlConnection#getErrorStream()

另外,请认真考虑使用其他更好的HTTP客户端。我建议Apache's HttpComponents.

09-05 16:56