J'ai une requête HTTP GET que j'essaye d'envoyer. J'ai essayé d'ajouter les paramètres à cette demande en créant d'abord un BasicHttpParams
objet et en ajoutant les paramètres à cet objet, puis en appelant setParams( basicHttpParms )
mon HttpGet
objet. Cette méthode échoue. Mais si j'ajoute manuellement mes paramètres à mon URL (c'est-à-dire ajouter ?param1=value1¶m2=value2
), cela réussit.
Je sais que quelque chose me manque ici et toute aide serait grandement appréciée.
Réponses:
J'utilise une liste de NameValuePair et URLEncodedUtils pour créer la chaîne d'url que je veux.
la source
Pour créer un uri avec des paramètres get, Uri.Builder fournit un moyen plus efficace.
la source
À partir de HttpComponents,
4.2+
il existe une nouvelle classe URIBuilder , qui fournit un moyen pratique de générer des URI.Vous pouvez utiliser soit créer un URI directement à partir de l'URL de chaîne:
Sinon, vous pouvez spécifier tous les paramètres explicitement:
Une fois que vous avez créé un
URI
objet, il vous suffit simplement de créer unHttpGet
objet et de l'exécuter:la source
La méthode
comme
ajoute uniquement les paramètres HttpProtocol.
Pour exécuter httpGet, vous devez ajouter manuellement vos paramètres à l'URL
ou utilisez la demande de publication, la différence entre les demandes d'obtention et de publication est expliquée ici , si vous êtes intéressé
la source
URI javadoc
Remarque:
url = new URI(...)
est boguéla source
la source
Si vous avez une constante,
URL
je recommande d'utiliser une requête http simplifiée sur apache http.Vous pouvez créer votre client comme suit:
Remarque: il existe de nombreuses méthodes utiles pour manipuler votre réponse.
la source