我正在使用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)
怎么了?主持人阻止了我吗?
答案 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”,我解决了问题。