J'ai un code similaire à ce qui suit:Pourquoi HttpClient jeter un SocketTimeoutException lors de l'exécution POST
try {
HttpPost post = new HttpPost(httpsUrl);
setHeaders(post);
HttpEntity entity = new StringEntity(request, "UTF-8");
post.setEntity(entity);
HttpResponse response = httpclient.execute(post);
String result = EntityReader.readContent(response.getEntity());
checkAnswer(result);
return result;
} catch (Exception e) {
throw new ZapException("Error executing the http post request: "+e.getMessage(), e);
}
Il envoie le contenu de request
à un serveur via POST en utilisant une instance de httpclient qui aurait déjà été utilisé auparavant (il a des connexions persistantes activées, puisque nous envoyons pas mal de requêtes au même serveur ...).
Cette parfois échoue avec un SocketTimeoutException
avec "Read expired" comme message. Ce n'est pas clair pour nous, pourquoi cela ne marche que quelques fois, quand la plupart du temps ça ne marche pas. Ce qui donne?
J'ai un problème similaire lorsque vous envoyez plusieurs requêtes à solr w/tomcat 7. à quoi envoyez-vous les demandes? Quels sont les détails de votre serveur puisque c'est là que les erreurs proviennent de –
Je pense que c'était Jetty 6. Mais c'était il y a pas mal de temps ... – kungfoo