2012-04-26 2 views
0

J'ai un problème avec la récupération des données d'une requête http. Avec certaines requêtes serveur, il faut une minute pour analyser le contenu du serveur. Les données de la requête sont un court message json (stocké dans la chaîne de réponse), il n'est donc pas nécessaire d'attendre si longtemps.Récupération lente du contenu HttpResponse avec nginx sur android

J'utilise les bibliothèques org.apache dans Android

Cela se produit uniquement avec notre serveur nginx dans la production, et non pas avec mon serveur webrick de développement (oui, il est un api de rails)

Ce code est utilisé dans une super classe utilisée pour toutes nos intentions api, mais il est seulement lent dans certaines occasions (certaines demandes de api)

le code se bloque sur la méthode toString sur la troisième ligne

HttpResponse result = ... ; 
HttpEntity response = result.getEntity(); 
String answer = EntityUtils.toString(response); 

Est-ce un problème courant?

EDIT: Ce sont les journaux de Wireshark https://img.skitch.com/20120426-jddnkdbhuttfujym9u4m7a2ph1.jpg

+0

Si vous faites des demandes multithread vous pourriez atteindre la limite de connexion (2 par hôte par défaut) et vous bloquer – zapl

+0

c'est la seule demande à ce moment – Quentin

+0

Wireshark journal a une participation de 65 secondes avant que les réponses du serveur. Je voudrais interpréter cela comme un problème de serveur, rien dans votre code Android/appareil lié. – zapl

Répondre

0

Ok les gars, problème résolu

Il était un problème de serveur après tout, Dans le code des rails, ne pas oublier d'ajouter votre code d'état

Nous avions:

respond_with({:auth_token => current_user.authentication_token}, :location => nil) 

Ce qu'il fixe:

respond_with({:auth_token => current_user.authentication_token},:status => :ok, :location => nil) 
Questions connexes