java.io.IOException:服务器返回的HTTP响应代码:500


问题内容

我正在用Java面对这个问题。我想从URL获取一些HTML信息。该代码已经运行了很长时间,但是突然,它停止了工作。

当我使用浏览器访问此URL时,它毫无问题地打开。

代码:

URL site = new URL(this.url);
java.net.URLConnection yc = site.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
String inputLine;
String objetivo = "<td height=\"28\" colspan=\"2\"";
while ((inputLine = in.readLine()) != null && !inputLine.contains(objetivo)) {
}
inputLine = in.readLine();

例外:

java.io.IOException: Server returned HTTP response code: 500 for URL: http://www.myurl.com
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at Sites.websites.Site1.getData(Site1.java:53)
    at util.Util.lerArquivo(Util.java:278)
    at util.Util.main(Util.java:983)

怎么了?主人阻止了我吗?


问题答案:

HTTP状态代码500通常表示Web服务器代码已崩溃。您需要预先确定状态代码HttpURLConnection#getResponseCode(),如果有错误,请阅读HttpURLConnection#getErrorStream()。它可能即包含有关问题的信息。

如果主机阻止了您,您宁愿获得4nn状态码,例如401或403。