2017-05-31 2 views
0

J'ai un problème lorsque j'exécute mon code, après l'ouverture de la requête HTTP j'essaie de récupérer le code de réponse, mais le programme s'arrête de s'exécuter sur l'instruction Ci-dessous mon code Le programme s'est arrêté en dernière ligne, le problème apparaît lorsque j'ouvre plusieurs requêtes HTTP l'une après l'autre. Remarque: lorsque je débogue le même code, cela fonctionne avec le doublage mais pas avec le fonctionnement. Le problème apparaît également après 8 requêtes HTTP.Arrêt du programme lorsque j'appelle getResponseCode()

Aidez-nous s'il vous plaît. Je vous remercie.

+0

Vous dites que votre programme se bloque après 8 demandes. Avez-vous à un moment donné fermé vos connexions? Sont-ils vraiment fermés (au niveau de l'OS)? Si vos connexions sont toujours ouvertes/suspendues, le serveur (peu importe à quoi vous vous connectez) pourrait manquer de connexions .... – sruetti

Répondre

0

Avez-vous placé ces lignes de code dans un bloc try/catch? Une exception peut être levée, l'attraper pour obtenir la pile de données serait utile pour obtenir des informations. De plus, il serait plus pratique d'avoir plus d'informations sur le contexte d'exécution: de quel type d'application s'agit-il, d'où vient l' url, et ainsi de suite.

+0

Oui je l'ai mis à l'intérieur try/catch block, l'url donné en paramètre pour la méthode, j'ai mis à jour le code ci-dessus .. merci. –

+0

Dans de rares cas, il n'y a pas d'exception levée, mais un Throwable. Une solution pourrait être de l'attraper, mais ce n'est pas recommandé (https://stackoverflow.com/questions/6083248/is-it-a-bad-practice-to-catch-throwable). Vous auriez plus d'informations sur ce qui se passe alors. À mon humble avis, vous pourriez l'attraper temporairement. – Javert0

+0

J'ai mis le bloc Throwable, mais le problème persiste. –

0
  • Si votre programme arrête sur la dernière ligne (à savoir les des sorties JVM) sans impression tout code de réponse, une exception doit ont été jetés par la getResponseCode(). Cette exception vous indiquera probablement quel est le problème. Comme Javert0 souligne, l'endroit où vous trouvez cette exception dépend de votre environnement - pire des cas attraper exception et imprimer vous-même ...

  • Si votre programme se bloque sur la dernière ligne, connection.getResponseCode() pourrait ne pas obtenir une réponse à partir du serveur et attendez un délai.

  • Comme vous ne disposez pas d'un connection.connect() explicite avant de demander le code de réponse (connection.getResponseCode()), le problème peut être presque tout: un temps mort (ne répondant pas serveur/réseau/DNS/...), un résultat non valide, autorisations manquantes, ...

+0

Je mets du bloc catch, mais rien n'y jette. –

+0

Êtes-vous sûr que 'connection.getResponseCode()' est appelé? Est-ce que votre code sort de 'getResponseCode()' c'est-à-dire quitte la JVM ou se bloque-t-il (attendez un timeout/wait indéfiniment)? – sruetti