2010-03-11 9 views
0

Je suis tombé sur un problème bizarre avec la bibliothèque java HttpClient. Spécifiquement, la bibliothèque réessaie automatiquement ma demande (requêtes POST) avant même que la réponse ne soit reçue du serveur. De plus, le problème le plus étrange est que cela ne se produit que sur des hôtes spécifiques (machines). Par conséquent, le résultat final est le suivant: si une demande de publication aboutit, il se peut qu'une demande de publication soit envoyée exactement au serveur et que le serveur ne puisse pas gérer. Maintenant, je veux le comportement de réessayer, mais il devrait se comporter intuitivement.
Tout le monde a déjà été confronté à ce type de problème ou existe-t-il un moyen de configurer le client http pour attendre une durée spécifique avant de réessayer. Je ne suis pas sûr de ce qui se passe ici .HttpClient se retire automatiquement avant que la réponse ne soit reçue du serveur

Répondre

0

Avez-vous un ensemble methodretryhandler pour votre HttpClient? Comme dans:

DefaultMethodRetryHandler retryhandler = new DefaultMethodRetryHandler(10, true); 
client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryhandler); 

C'est là retries proviendraient et vous pourriez déboguer et voir ce que les en-têtes de réponse, il est reçu le cas échéant, etc.

Avez-vous essayé d'utiliser un moniteur http firefox ou éthérée ou similaire à regarder à travers vos demandes et réponses http et assurez-vous que ce que vous croyez est en train de se passer?