java.io.IOException: Server returned HTTP response code: 500

rlc picture rlc · Aug 8, 2010 · Viewed 195k times · Source

I'm facing this problem with Java. I want to get some HTML informations from a URL. This code was working for so long, but suddenly, it stopped working.

When I access this URL using the browser, it opens with no problem.

The code:

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();

The Exception:

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)

What's wrong? Did the host block me?

Answer

BalusC picture BalusC · Aug 8, 2010

HTTP status code 500 usually means that the webserver code has crashed. You need to determine the status code beforehand using HttpURLConnection#getResponseCode() and in case of errors, read the HttpURLConnection#getErrorStream() instead. It may namely contain information about the problem.

If the host has blocked you, you would rather have gotten a 4nn status code like 401 or 403.

See also: