java.Ио.IOException: сервер вернул код ответа HTTP: 500

я сталкиваюсь с этой проблемой с Java. Я хочу получить информацию HTML из URL-адреса. Этот код работал так долго, но внезапно он перестал работать.

когда я получаю доступ к этому 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)

Что случилось? Хозяин заблокировал меня?

5 ответов


код состояния HTTP 500 обычно означает, что код веб-сервер упал. Вам необходимо заранее определить код состояния с помощью HttpURLConnection#getResponseCode() и в случае ошибки, читать HttpURLConnection#getErrorStream(). Именно в нем может содержаться информация о проблеме.

если хост заблокировал вас, вы предпочли бы получить код состояния 4nn, такой как 401 или 403.

Читайте также:


этот код состояния 500 является внутренней ошибкой сервера. Этот код указывает, что часть сервера (например, программа CGI) аварийно завершила работу или обнаружила ошибку конфигурации.

Я думаю, что проблема не лежит на вашей стороне, а скорее на стороне Http-сервера. ресурсы, к которым вы обращались, возможно, были перемещены или повреждены, или их конфигурация просто может быть изменена или испорчена


Я столкнулся с той же проблемой и нашли решение.

вы можете посмотреть в первом ответе сервера и посмотреть, отправил ли сервер вам файл cookie.

чтобы проверить, отправил ли вам сервер cookie, вы можете использовать HttpURLConnection#getHeaderFields () и искать заголовки с именем "Set-Cookie".

Если существующий, вот решение вашей проблемы. 100% работает для этого случая!

+1 если это сработало для вас.


У меня была эта проблема, т. е. отлично работает при вставке в браузер, но 505s, когда сделано через java. Это были просто пробелы, которые нужно было экранировать/закодировать.


измените тип контента на "application / x-www-form-urlencoded", я решил проблему.