web-dev-qa-db-fra.com

Quelle est la bibliothèque HTTP la plus robuste pour Android?

Je recherche une bibliothèque qui gère HTTP POST, plusieurs parties, etc. Existe-t-il une bibliothèque standard de facto pour faciliter ces demandes sur Android?

18
hunterp

Jetez un coup d'oeil à DroidFu , et en particulier aux composants DroidFu HTTP . Ils sont assez minces pour le HTTP d'Apache Commons, mais ils répondent assez bien à la plupart des besoins. Il inclut des subtilités telles que la mise en cache HTTP et de modèle facultative, et même "pourquoi cela n’est-il pas intégré à la plate-forme" comme GZip. (Un côté: Android.net.AndroidHttPClient est une très bonne mise à niveau vers les anciennes valeurs par défaut de DefaultHttpClient lorsque vous devez vous déplacer pour un peu plus de contrôle, mais il s’agit uniquement d’Android 2.2+ et assez sous-documenté).

Si vous avez simplement besoin de plusieurs parties avec un minimum de tracas, vous pouvez essayer Android_multipart_post , bien que je n’aie jamais essayé.

MODIFIER:

DroidFu est maintenant arrêté. Ces jours-ci, si je débutais un nouveau projet, j'utiliserais presque certainement Volley , avec OKHttp si j'avais besoin de plus de contrôle (vous pouvez même utiliser OKHttp comme couche de transport pour la volée si vous voulez faire les deux. ).

8
Yoni Samlan

Utilisez http-request de Kevin Sawicki. http://kevinsawicki.github.com/http-request/

7
Donn Felker

Mon préféré estIon(complet, en développement actif). Il est construit sur AndroidAsync (à utiliser seul si vous n'avez pas besoin des fonctionnalités Ion), à la fois par Koushik Dutta .

  • Téléchargement asynchrone
  • API Fluent facile à utiliser conçue pour Android
  • HTTP POST/PUT
  • Utilisation transparente des fonctionnalités et optimisations HTTP
  • Voir les en-têtes reçus
  • Regroupement et annulation des demandes
  • Rappels de progression de téléchargement
  • Prend en charge le fichier: /, http (s):/et le contenu:/URI
  • Enregistrement et profilage au niveau de la demande
  • Prise en charge des serveurs proxy tels que Charles Proxy pour l'analyse des demandes
  • Basé sur NIO et AndroidAsync
  • Possibilité d'utiliser des certificats SSL auto-signés
7
caligari

Jetez un oeil à http://loopj.com/Android-async-http/

La vue d’ensemble indique: Un client HTTP asynchrone basé sur le rappel pour Android, construit au-dessus des bibliothèques HttpClient d’Apache. Toutes les demandes sont effectuées en dehors du thread principal de l’interface utilisateur de votre application, mais toute logique de rappel sera exécutée sur le même thread que celui où le rappel a été créé à l’aide du passage du message Handler d’Android.

Cette bibliothèque était utilisée par des applications populaires telles que Instagram, Pinterest, Heyzap, etc.

6
Bakyt

Si vous voulez utiliser keep alives et gzip et que vous ne voulez pas faire l'expérience d'erreurs de temporisation aléatoires, vous ne pouvez malheureusement pas utiliser une seule bibliothèque.

Sur les versions de SDK Android inférieures à 9, vous souhaiterez utiliser la bibliothèque Apache. Sur les versions 9 à 13 du SDK Android, la bibliothèque Apache a des problèmes (délais d'attente aléatoires) et vous voudrez utiliser HttpUrlConnection.

Malheureusement, dans mes tests sur ICS HttpUrlConnection est vraiment un buggy et vous voudrez utiliser la bibliothèque Apache pour le moment.

Google Post officiel sur le sujet: http://Android-developers.blogspot.com/2011/09/androids-http-clients.html

Problème que j'ai trouvé sur ICS: Quel client HTTP Http utiliser pour Ice Cream Sandwich?

3
radiofrequency

Il y a quelque chose que j'ai fait. Il étend la bibliothèque loopj avec des gestionnaires et des chargeurs qui créent des POJO. https://github.com/MarkoMilos/Android-http

0
MarkoMilos