2010-05-15 6 views
2

Je pense que je vis la même chose que http://groups.google.com/group/android-developers/msg/9d37d64aad0ee357
Ceci est Android 1.5 SDK. Il m'arrive d'appeler plusieurs fois ci-dessous le code (qui est dans une méthode) avec la même URL et il échoue par intermittence.
En cas d'échec, il n'y a pas d'exception, le flux est vide, donc la lecture de échoue et getResponseCode renvoie -1.
La mise en cache globale est désactivée, setDefaultUseCaches (false);HttpsURLConnection échouant par intermittence à la même URL

Je suppose qu'il doit y avoir un type de pool d'objets de connexion url quelque part.

Une idée sur comment puis-je contourner ce problème?

HttpURLConnection connection = null; 
    try { 
     URL url = new URL(this.url); 
     connection = (HttpURLConnection) url.openConnection(); 
     connection.setRequestProperty("Authorization", "basic " + 
     Base64Coder.encodeString(user + ":" + password)); 
     connection.setRequestProperty("User-Agent", userAgent); 
     connection.connect(); 

     readConnection(connection.getInputStream()); 

     connection.disconnect(); 
    } catch (IOException ex) { 
       reportException(ex, connection.getResponseCode()) 
    } catch (ParserException ex) { 
       reportException(ex, connection.getResponseCode()) 
    } 

Répondre

3

La façon dont je résolu ce problème était d'ajouter la ligne ci-dessous ...

System.setProperty("http.keepAlive", "false"); 

... avant ma ligne de connexion ...

connection = (HttpURLConnection) url.openConnection(); 

Bonne chance!

0

Si getResponseCode renvoie -1, cela signifie qu'il y avait une erreur de connexion.

Questions connexes