J'ai besoin de télécharger une page web sur une application android et je vais avoir un moment difficile de décider si l'utilisation de l'android http apache client ou de java URLConnection.
Toutes les pensées?
J'ai besoin de télécharger une page web sur une application android et je vais avoir un moment difficile de décider si l'utilisation de l'android http apache client ou de java URLConnection.
Toutes les pensées?
Google a silencieusement obsolète HTTP Apache utilisation du client depuis de pain d'épice: http://android-developers.blogspot.com/2011/09/androids-http-clients.html. Et alors qu'ils n'ont pas de marquer avec déconseillé d'annotation, ils vous suggérons d'utiliser HttpURLConnection pour de nouvelles applications comme: it is where we [Google] will be spending our energy going forward
.
Personnellement je n'aime pas cette décision et serait plutôt de conserver HttpClient 4.1+, car il est plus rapide, avoir moins de bugs et est mis à jour régulièrement. Et tandis que vous ne pouvez pas le système de mise à niveau de la bibliothèque vers la version 4.1, vous pouvez inclure HttpClient jar pour votre projet Android (comme avantage supplémentaire, cela vous permettrait de ne pas dépendre sur Google corrections de bugs et le vendeur mises à jour). Il y a un inconvénient cependant: pour éviter d'éventuelles collisions avec bibliothèque intégrée, vous devez renommer httpclient packages à l'aide de JarJar outil. S'est avéré quelqu'un l'a déjà fait (reconditionné bocal et Android de projets de bibliothèque sont disponibles pour le téléchargement):
http://code.google.com/p/httpclientandroidlib/
C'est un reconditionnement de HttpClient 4.1 pour Android. La version de HttpClient dans le SDK Android est 4.0beta2. Il y a eu plusieurs les mises à jour HttpClient et on en a bien besoin des corrections de bugs, comme la mise en cache auth depuis la 4.0 bêta.
Depuis que Google a retiré de HttpClient en faveur de la Java standard HttpURLConnection j'ai créé un script pour convertir une sortie de stock Apache HttpClient dans un Androïde de la bibliothèque.
Modifications de stock HttpClient
- Renommé tous les packages org.apache.http, ch.boye.httpclientandroidlib
- Supprimé toutes les classes dépend de org.l'ietf.* SPNEGO (authentification)
- Remplacé org.apache.commons.codec.binaires.Base64 avec android.util.Base64
- Créé une nouvelle classe HttpClientAndroidLog pour remplacer org.apache.commons.la journalisation
Pour la plupart des choses, je dirais que c' HttpClient
est le chemin à parcourir. Cependant, il existe certaines situations et cas limites où j'avais fait retomber en URLConnection
. Des exemples de cas de bord ici et ici
MODIFIER
Une question similaire a été posée: httpclient vs httpurlconnection. Je suppose qu' , je trouverais HttpUrlConnection
est un peu plus rapide que l' HttpClient
est construite au-dessus de la norme de bibliothèques Java. CependantHttpClient
code plus rapide et plus facile à écrire et à maintenir. Selon un des commentaires ci-dessous, les éléments de base de l' HttpClient
de la performance optimisée.
Si la performance est une préoccupation majeure de votre meilleur pari est d'écrire deux clients, l'utilisation de chaque méthode, puis comparer les deux. Si vous le faites, s'il vous plaît laissez-nous savoir les résultats.
dans le pain d'épices et plus tard, HttpURLConnection est le chemin à parcourir. envisager de Apache HttpClient obsolète. (notez aussi que Android n'utilise pas HttpClient 4.1, mentionné dans un autre commentaire.)
si vous avez un cas où Apache HttpClient est plus rapide, comme le rapport d'un bug ici: http://code.google.com/p/android/issues/list
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.