2011-06-12 2 views
2

Je suis en train de tester mon application sur 3 appareils. Un appareil LG Optimus de Sprint lance jamais des exceptions sur les appels https (peut-être une fois par semaine)Exceptions aléatoires Android sur les appels HTTP. Pourquoi?

Nexus S sur T-Mobile presque toutes les heures arriver à quelque chose comme ceci:

Read error: ssl=0x3f4060: I/O error during system call, Connection reset by peer

Maintenant, j'obtenu comprimé pour les tests (S7 Slim) et il est connecté via WiFi et je reçois des erreurs comme:

SSL shutdown failed: I/O error during system call, Broken pipe

savez-vous pourquoi les arriver et est-il possible de les éviter?

Répondre

1

Le repos par les pairs signifie que le serveur rejette/perd votre connexion. L'échec SSL est probablement le résultat direct de la réinitialisation de la connexion. Mon pari est que cela se produit lors de la commutation des réseaux (wifi à 3G) au milieu d'une connexion de longue date.

Si possible, créez une connexion, effectuez des E/S et déconnectez-vous le plus rapidement possible. Si vous devez gérer une connexion longue et persistante, préparez-vous à gérer de telles exceptions et reconnectez-vous en coulisses.

+0

Je crée et réutilise la connexion dans ma propre classe Application. Je me débrouille bien, je me demandais pourquoi. Donc, si je crée une connexion à chaque fois au lieu d'une fois alors je ne devrais pas voir ça? – katit

+0

@katit: probablement, tout dépend de la façon dont vous réutilisez les connexions. C'est une bonne idée de réutiliser les connexions, en particulier les connexions SSL si possible, mais si vous avez à faire, faites attention aux connexions de longue durée (même celles en réserve). Je n'en sais pas assez sur votre application pour être sûr, mais vous pouvez probablement créer un pool, les utiliser, puis les jeter jusqu'à ce que le prochain lot de connexions soit nécessaire. –

Questions connexes