19

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?

2
  • Do you have control on the server ? What errors are happening there ? Have you tried a debugger with remote debugging, or running inside your IDE ? Commented Aug 8, 2010 at 15:38
  • i experiencing the same problem here.... somewhere after 2000 lines of code. Is that caching problem or something? Commented Aug 31, 2021 at 9:37

7 Answers 7

33

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:

Sign up to request clarification or add additional context in comments.

4 Comments

But using this same URL with the browser, there's no problem. Isn't it a Java problem?
Did you read the error stream and the link? Your request might be missing some parameters or cookies which caused the server to choke. This is definitely no Java problem. It's just the messenger here. This smells much more bad code in the server which doesn't handle unexpectional circumstances correctly.
Thanks for reply! I'd like to really emphasize on handling error stream while sending request with HTTPUrlConnection.
@gumuruh Solved what exactly? I don't think I was the one having an issue here :)
4

This Status Code 500 is an Internal Server Error. This code indicates that a part of the server (for example, a CGI program) has crashed or encountered a configuration error.

i think the problem does'nt lie on your side, but rather on the side of the Http server. the resources you used to access may have been moved or get corrupted, or its configuration just may have altered or spoiled

1 Comment

corrupted? the xampp server...? how to handle this one then?
1

I had this problem i.e. works fine when pasted into browser but 505s when done through java. It was simply the spaces that needed to be escaped/encoded.

1 Comment

which one? the parameter containing the spaces or something else?
1

The problem must be with the parameters you are passing(You must be passing blank parameters). For example : http://www.myurl.com?id=5&name= Check if you are handling this at the server you are calling.

Comments

0

Change the content-type to "application/x-www-form-urlencoded", i solved the problem.

1 Comment

i also, did that but not getting the case solved.
0

You may look within the first server response and see if the server sent you a cookie.

To check if the server sent you a cookie, you can use HttpURLConnection#getHeaderFields() and look for headers named "Set-Cookie".

If existing, here's the solution for your problem. 100% Working for this case!

Comments

0

In my case, I had changed the Content-Type to Accept and it resolved the issue.

    URL url = new URL(GET_URL);
    HttpURLConnection con = (HttpURLConnection) url.openConnection();
    con.setRequestMethod("GET");
    con.setRequestProperty("Accept", "application/json; charset=utf-8");

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.