J'ai cherché partout mais je n'ai pas trouvé ma réponse, existe-t-il un moyen de faire une simple requête HTTP? Je souhaite demander une page / un script PHP sur l'un de mes sites Web, mais je ne souhaite pas afficher la page Web.
Si possible, je veux même le faire en arrière-plan (dans un BroadcastReceiver)
android
httpwebrequest
androidhttpclient
Mats Hofman
la source
la source
Réponses:
MISE À JOUR
Ceci est une réponse très ancienne. Je ne recommanderai certainement plus le client d'Apache. Utilisez plutôt:
Réponse originale
Tout d'abord, demandez une autorisation d'accès au réseau, ajoutez ce qui suit à votre manifeste:
Ensuite, le moyen le plus simple consiste à utiliser le client Apache http fourni avec Android:
Si vous voulez qu'il s'exécute sur un thread séparé, je vous recommande d'étendre AsyncTask:
Vous pouvez alors faire une demande en:
la source
sauf si vous avez une raison explicite de choisir Apache HttpClient, vous devez préférer java.net.URLConnection. vous pouvez trouver de nombreux exemples d'utilisation sur le Web.
nous avons également amélioré la documentation Android depuis votre publication d'origine: http://developer.android.com/reference/java/net/HttpURLConnection.html
et nous avons parlé des compromis sur le blog officiel: http://android-developers.blogspot.com/2011/09/androids-http-clients.html
la source
Remarque: Le client HTTP Apache fourni avec Android est désormais déconseillé au profit de HttpURLConnection . Veuillez consulter le blog des développeurs Android pour plus de détails.
Ajoutez
<uses-permission android:name="android.permission.INTERNET" />
à votre manifeste.Vous récupéreriez alors une page Web comme ceci:
Je suggère également de l'exécuter sur un thread séparé:
Consultez la documentation pour plus d'informations sur la gestion des réponses et les requêtes POST.
la source
readStream
n'est même pas défini.Le moyen le plus simple consiste à utiliser la bibliothèque Android appelée Volley
Vous pouvez envoyer une demande http / https aussi simple que cela:
Dans ce cas, vous n'avez pas besoin d'envisager "de fonctionner en arrière-plan" ou "d'utiliser le cache" vous-même car tout cela a déjà été fait par Volley.
la source
Cordialement
la source
Avec un fil:
la source
J'ai fait ceci pour qu'un webservice demande sur URL, en utilisant une lib Gson:
Client:
la source
Regardez cette nouvelle bibliothèque impressionnante qui est disponible via gradle :)
build.gradle:
compile 'com.apptakk.http_request:http-request:0.1.2'
Usage:
https://github.com/erf/http-request
la source
Utilisez Volley comme suggéré ci-dessus. Ajouter le suivant dans build.gradle (Module: app)
Ajoutez ce qui suit dans AndroidManifest.xml:
Et ajoutez le code d'activité suivant:
Il remplace le client http et c'est très simple.
la source
Il s'agit du nouveau code pour la requête HTTP Get / POST dans Android.
HTTPClient
est obsolète et peut ne pas être disponible comme c'était le cas dans mon cas.Ajoutez d'abord les deux dépendances dans build.gradle:
Ensuite, écrivez ce code
ASyncTask
dans ladoBackground
méthode in .la source
Pour moi, la façon la plus simple est d'utiliser une bibliothèque appelée Retrofit2
Nous avons juste besoin de créer une interface qui contient notre méthode de demande, nos paramètres, et nous pouvons également créer un en-tête personnalisé pour chaque demande:
Et le mieux est que nous pouvons le faire de manière asynchrone facilement en utilisant la méthode de mise en file d'attente
la source
Comme aucune des réponses ne décrit un moyen d'effectuer des requêtes avec OkHttp , qui est un client http très populaire de nos jours pour Android et Java en général, je vais fournir un exemple simple:
L'avantage évident de cette bibliothèque est qu'elle nous soustrait à certains détails de bas niveau, offrant des moyens plus conviviaux et sécurisés d'interagir avec eux. La syntaxe est également simplifiée et permet d'écrire du bon code.
la source