J'ai un morceau de code Java qui ouvre une connexion HTTP, écrit des données à ce sujet, puis récupère le code de réponse. Depuis, le connectin était bien il devrait obtenir HTTP_OK (c.-à-200) mais il obtient 1 en retour.Pourquoi HttpURLConnection.getResponseCode() renvoie-t-il 1?
Ceci est déconcertant car 1 n'apparaît nulle part dans la spécification de code Http Response. Quelqu'un pourrait-il jeter quelques idées sur la zone de problème potentiel?
ci-après le morceau de code:
URL tempURL = new URL("http://www.google.com");
obj_URLHttpConnectionServlet = (HttpURLConnection)tempURL.openConnection();
obj_URLHttpConnectionServlet.setDoInput(true);
obj_URLHttpConnectionServlet.setDoOutput(true);
OutputStream obj_OutputStream = obj_URLHttpConnectionServlet.getOutputStream();
obj_OutputStream.write(sConfigurationData.getBytes());
obj_OutputStream.flush();
obj_OutputStream.close();
obj_OutputStream = null;
int iResponseCode = obj_URLHttpConnectionServlet.getResponseCode();
System.out.println("Response code received is : " + iResponseCode);
sortie
Code de réponse reçu est le suivant: 1
Est-ce possible pour un serveur de modifier le code de réponse http? Le même morceau de code sur un autre environnement et pour le même serveur fonctionne correctement et retourne 200 – Tushu
Dans une classe de servlet, vous pouvez facilement faire cela par 'response.setStatus (1)'. Le serveur web peut aussi faire cela, les détails dépendent de la marque/version. Pour être sûr, utilisez un outil de surveillance HTTP comme Fiddler pour exclure l'un ou l'autre (s'il en affiche 1 également, alors c'est le serveur, sinon c'est le client). – BalusC
Ok, mais la grande question demeure: comment le même serveur peut-il renvoyer un code de réponse différent pour deux mêmes codes (fonctionnant dans des environnements différents)? – Tushu