Je fais une demande de service à un serveur en utilisant HttpsURLConnection comme le code ci-dessous:HttpsURLConnection.getInputStream() effectue-t-il des tentatives automatiques?
URL url = new URL("service/url");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setConnectionTimeout(300000);
connection.setReadTimeout(300000);
parse (connection.getInputStream());
service parfois peut prendre plus de temps, donc idéalement je devrais attendre une exception TimeOut mais le client fait une nouvelle tentative et l'envoi la même demande à nouveau. Y at-il un moyen de désactiver explicitement tout type de tentatives? Et je ne suis même pas sûr si les méthodes de délai d'attente font une différence.
J'utilise Java 1.6
MISE À JOUR
J'ai essayé connect() et getResponseCode() au lieu de getInputStream(), mais même comportement:
URL url = new URL("service/url");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setConnectionTimeout(300000);
connection.setReadTimeout(300000);
connection.connect();
connection.getResponseCode();
même ce fait 2 demandes.
MISE À JOUR
HttpClient a résolu le problème. Dans HttpClient vous pouvez explicitement définir de réessayer à false
Comment avez-vous déduit qu'il réessaie? – gammay
2 exactement les mêmes demandes sont à venir dans les journaux du serveur. Et la demande échoue en raison d'une demande en double. – gnuger
Veuillez utiliser un outil comme [fiddler] (http://www.fiddler2.com/fiddler2/) pour vérifier s'il s'agit d'un problème côté client. – gammay