web-dev-qa-db-fra.com

java.io.IOException: le serveur a renvoyé le code de réponse HTTP: 500

Je suis confronté à ce problème avec Java. Je souhaite obtenir des informations HTML à partir d'une URL. Ce code fonctionnait depuis si longtemps, mais soudainement, il a cessé de fonctionner.

Lorsque j'accède à cette URL à l'aide du navigateur, elle s'ouvre sans problème.

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

L'éxéption:

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)

Qu'est-ce qui ne va pas? Est-ce que l'hôte m'a bloqué?

12
rlc

Code d'état HTTP 500 signifie généralement que le code du serveur Web s'est écrasé. Vous devez au préalable déterminer le code d'état à l'aide de HttpURLConnection#getResponseCode() et en cas d'erreur, lisez plutôt le HttpURLConnection#getErrorStream() . Il peut notamment contenir des informations sur le problème.

Si l'hôte vous a bloqué, vous auriez plutôt obtenu un code d'état 4nn tel que 401 ou 403.

Voir également:

24
BalusC

Ce code d'état 500 est une erreur interne du serveur. Ce code indique qu'une partie du serveur (par exemple, un programme CGI) est tombée en panne ou a rencontré une erreur de configuration.

je pense que le problème ne se situe pas de votre côté, mais du côté du serveur Http . les ressources auxquelles vous accédiez ont peut-être été déplacées ou sont corrompues, ou sa configuration peut avoir été altérée ou gâchée

3
arthur

J’ai eu ce problème, c’est-à-dire que cela fonctionne bien lorsque vous le collez dans un navigateur, mais 505s lorsque vous avez terminé via Java. C'était simplement les espaces qui devaient être échappés/encodés.

0
GarethReid

Le problème doit être lié aux paramètres que vous transmettez (vous devez transmettre des paramètres vides). Par exemple: http://www.myurl.com?id=5&name= Vérifiez si vous gérez cela sur le serveur que vous appelez.

0
Prem

J'ai rencontré le même problème et trouvé la solution.

Vous pouvez regarder dans la première réponse du serveur et voir si le serveur vous a envoyé un cookie.

Pour vérifier si le serveur vous a envoyé un cookie, vous pouvez utiliser HttpURLConnection # getHeaderFields () et rechercher des en-têtes nommés "Set-Cookie".

Si existant, voici la solution à votre problème. 100% Travailler pour ce cas!

+1 si cela a fonctionné pour vous.

0
AMIL.Y