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é?
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.
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
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.
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.
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.