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

时间:2010-08-07 22:21:37

标签: java http urlconnection

我正在使用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)

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

6 个答案:

答案 0 :(得分:25)

HTTP status code 500通常意味着网络服务器代码崩溃了。您需要事先使用HttpURLConnection#getResponseCode()确定状态代码,如果出现错误,请阅读HttpURLConnection#getErrorStream()。它可能包含有关问题的信息。

如果主机阻止了你,你宁愿得到像401或403这样的4nn状态代码。

另见:

答案 1 :(得分:3)

此状态码500是内部服务器错误。此代码表示服务器的一部分(例如,CGI程序)已崩溃或遇到配置错误。

我认为问题并不在于你,而在于Http服务器。 您用于访问的资源可能已被移动或损坏,或其配置可能已被更改或损坏

答案 2 :(得分:0)

我遇到了同样的问题并找到了解决方案。

您可以查看第一个服务器响应,看看服务器是否向您发送了cookie。

要检查服务器是否向您发送了cookie,您可以使用HttpURLConnection#getHeaderFields()并查找名为&#34; Set-Cookie&#34;的标题。

如果存在,here's the solution for your problem. 100%为此案件工作!

+1,如果它适合你。

答案 3 :(得分:0)

我遇到了这个问题,即粘贴到浏览器时效果很好,但是通过java完成后可以使用505s。它只是需要转义/编码的空间。

答案 4 :(得分:0)

问题一定是您要传递的参数(您必须传递空白参数)。例如:http://www.myurl.com?id=5&name= 检查您是否正在呼叫的服务器上处理此问题。

答案 5 :(得分:-1)

将内容类型更改为“application / x-www-form-urlencoded”,我解决了问题。