因此,在我的部分代码中,我试图访问一个网页,并且在该网页不存在的情况下(我正在测试),我得到了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.