Android HTTP paramètres GET
Je suis en utilisant le serveur apache http bibliothèque et ont besoin de savoir comment faire pour ajouter un paramètre à une requête HTTP GET. J'ai regardé sur Comment faire pour ajouter des paramètres à une requête HTTP GET sur Android? mais le a accepté de répondre pour qui ajoute des paramètres pour un HTTP POST. C'est mon code mais il ne fonctionne pas.
HttpGet get = new HttpGet("https://server.com/stuff");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("count", "5"));
HttpParams p = get.getParams();
p.setParameter("length", "5");
get.setParams(p);
Veuillez expliquer en quoi il n'est pas de travail - n'est-il pas de compiler, d'accident, ou tout simplement ne pas obtenir les résultats escomptés?
Ajout d'un paramètre get est trivial. Vous pouvez simplement faire
utilisez "server.com/stuff" + URLEncodedUtils.format(nameValuePairs, "utf-8"); HttpParams est pour http paramètres de protocole associé.
le serveur agit comme si elle ne reçoit pas un paramètre à tous lorsque j'utilise la méthode ci-dessus. Je vais essayer njzk2 réponse
Ajout d'un paramètre get est trivial. Vous pouvez simplement faire
new HttpGet("https://server.com/stuff?id=" + 123);
par exempleutilisez "server.com/stuff" + URLEncodedUtils.format(nameValuePairs, "utf-8"); HttpParams est pour http paramètres de protocole associé.
le serveur agit comme si elle ne reçoit pas un paramètre à tous lorsque j'utilise la méthode ci-dessus. Je vais essayer njzk2 réponse
OriginalL'auteur mpatten | 2013-01-11
Vous devez vous connecter pour publier un commentaire.
contrairement POST, GET envoie les paramètres dans l'url comme ceci:
Où: les paramètres de la zone de départ de l'interrogation et donc la variable1 est le premier param et il a "valeur" valeur...
Voir ici pour plus d'informations.
Donc ce que vous devez faire est de simplement construire une url qui contient également ces paramètres selon les besoins de serveur.
EDIT:
Dans votre cas :
Où: count=5 et longueur=5 sont les paramètres et les "?" marque le début de la définition des paramètres...
J'espère que ça aide.
Eh bien, vous pourriez concevoir une méthode d'aide pour le faire ... et à l'aide d'une liste de valeur et l'objet de paires que vous pouvez générer l'url... et aussi encoder en à vos besoins...
Vous avez raison. Je devrais probablement faire.
OriginalL'auteur Cata
EDIT: Depuis Android SDK v22, le type
NameValuePair
est obsolète. Je recommande d'utiliser Volley, un HTTP bibliothèque qui fait de réseautage pour les apps Android plus facile et surtout plus rapide.OriginalL'auteur Andrea Motto