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() 。 它可能包含有关问题的信息。

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

也可以看看:

  • 如何使用URLConnection来触发和处理HTTP请求?

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

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

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

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

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

如果存在, 这里是您的问题的解决方案。 100%为此案件工作!

+1如果它适合你。

我有这个问题,即粘贴到浏览器时工作正常,但通过java完成505s。 它只是需要转义/编码的空间。

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