2010-09-20 4 views
0

`m en utilisant la classe HttpURLConnection ainsi:Got 0 lors de l'utilisation HttpURLConnection.getResponseCode()

HttpURLConnection con=(HttpURLConnection) servlet.openConnection(); 
int conResponseCode = con.getResponseCode(); 

Parfois, je m` se conResponseCode comme .

J'ai essayé de regarder dans le filet, et ne pourrais pas trouver ce que cela signifie?

aucune idée de pourquoi cela se produit? et pour quoi cela est-il prévu?

Merci, ray.

+0

Est-ce le code complet? Vous faites la connexion dans n'importe quel bloc d'essai? –

+0

Oui, la connexion est dans un bloc try-catch. – rayman

Répondre

0

Ce n'est pas une réponse HTTP valide, donc cela ne signifie rien en soi. En regardant la source de java.net.HttpURLConnection (ce que je suppose que vous voulez dire), il semble juste analyser le code de statut entier hors de la ligne de réponse. Ce qui semble impliquer que le serveur distant renvoie une réponse le long des lignes de:

HTTP/1.0 0 XXX

(où XXX est une raison). Si vous effectuez la demande vous-même avec telnet (ou un programme similaire), ou pouvez mettre des points d'arrêt sur les sources Java dans votre débogueur, vous serez en mesure de voir ce qui est renvoyé à partir du serveur distant dans ce cas. Dans tous les cas, il s'agit d'un bogue dans les bibliothèques Java (possible, mais peu probable) ou d'une réponse étrange du serveur distant. Obtenir le contenu brut de la réponse vous permettra de faire la distinction entre les deux, puis envoyer une requête ping à la partie concernée avec un rapport de bogue.

+0

Je ne peux pas attraper le problème dans le débogueur, car il arrive au hasard. – rayman

+0

Un point d'arrêt conditionnel dans le débogueur vous permettrait de déclencher ce problème uniquement lorsque le retour allait être zéro. Si vous avez des problèmes à le reproduire * du tout *, c'est complètement différent. –

+0

Donc, je ne pouvais pas voir les détails de l'erreur à travers mon code? – rayman

Questions connexes