Donc, je suis venu à la conclusion que Apache HttpComponents 4 est l'un des plus tendus Api que j'ai jamais rencontré. Les choses qui semblent comme ils doivent être simples prennent des centaines de lignes de code (et je suis toujours pas sûr de ressources nettoyée correctement).
De Plus il veut me faire faire des choses comme:
List<NameValuePair> qparams = new ArrayList<NameValuePair>();
qparams.add(new BasicNameValuePair("q", "httpclient"));
qparams.add(new BasicNameValuePair("btnG", "Google Search"));
qparams.add(new BasicNameValuePair("aq", "f"));
qparams.add(new BasicNameValuePair("oq", null));
URI uri = URIUtils.createURI("http", "www.google.com", -1, "/search",
URLEncodedUtils.format(qparams, "UTF-8"), null);
Qui,... non. Je sais que c'est de Java, et nous ne sommes pas dans l'ensemble de la brièveté chose, mais c'est un peu trop. Pour ne pas mentionner les pots jusqu'à 700KB.
De toute façon, assez délires, j'ai voulu voir ce genre d'expériences que les gens ont avec les autres client HTTP bibliothèques?
Ceux que je connais sont: la Jetée, hotpotato, et AsyncHttpClient.
C'est pour une utilisation côté serveur, je suis surtout intéressé à la performance pour de nombreuses concurrentes obtient et les transferts de fichiers volumineux.
Toutes les recommandations?
PS je sais que le vénérable HttpClient 3.1 est toujours là, mais j'aimerais utiliser quelque chose qui est pris en charge.
Mise à jour
@oleg: c'est ce que les docs suggèrent:
HttpClient httpclient = new DefaultHttpClient();
try {
HttpGet httpget = new HttpGet("http://www.apache.org/");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instream = entity.getContent();
try {
instream.read();
} catch (IOException ex) {
throw ex;
} catch (RuntimeException ex) {
httpget.abort();
throw ex;
} finally {
try { instream.close(); } catch (Exception ignore) {}
}
}
} finally {
httpclient.getConnectionManager().shutdown();
}
Je reçois toujours des erreurs lors de la consommation de l'entité de contenu lors de l'utilisation d' ThreadSafeClientConnManager
. Je suis sûr que c'est de ma faute, mais à ce point je n'ai pas vraiment envie d'avoir à le comprendre.
Hey, je ne veux pas dénigrer quiconque de travailler ici, mais j'ai été faire un effort de bonne foi pour utiliser HttpComponents depuis la 4.0 est sorti et il n'est tout simplement pas de travail pour moi.