Lors de la construction d'une requête HTTP POST en PHP Je peux utiliser une méthode simple appelée: http_build_query qui renverra les éléments suivants en fonction du tableau passé à la fonction:HTTP POST Tableau Params pour Java/Android
Tableau simple:
Array
(
[0] => foo
[1] => bar
[2] => baz
[3] => boom
[cow] => milk
[php] => hypertext processor
)
Retours:
flags_0=foo&flags_1=bar&flags_2=baz&flags_3=boom&cow=milk&php=hypertext+processor
Un peu plus complexe tableau:
Array
(
[user] => Array
(
[name] => Bob Smith
[age] => 47
[sex] => M
[dob] => 5/12/1956
)
[pastimes] => Array
(
[0] => golf
[1] => opera
[2] => poker
[3] => rap
)
[children] => Array
(
[bobby] => Array
(
[age] => 12
[sex] => M
)
[sally] => Array
(
[age] => 8
[sex] => F
)
)
[0] => CEO
)
Retours:
user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8&children%5Bsally%5D%5Bsex%5D=F&flags_0=CEO
Ce que je demande est, est-il possible de créer ce dernier format entité en Java/Android? Je l'ai essayé ce qui suit sans chance:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
nameValuePairs.add(new BasicNameValuePair("user", null));
nameValuePairs.add(new BasicNameValuePair("firstname", "admin"));
nameValuePairs.add(new BasicNameValuePair("lastname", "admin"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Espérons que quelqu'un sait comment atteindre cet objectif :) Cordialement, Morten
EDIT:
Fondamentalement, ce que je dois est au produit l'équivalent Java de ce PHP:
$params = array('user' => array(
'firstname' => 'Bob Smith',
'lastname' => 'Johnson'
));
C'est la même demande au format JSON:
{"user":{"firstname":"Bob Smith","lastname":"Johnson"}}
J'ai juste besoin l'équivalent Java en application/x-www-form-urlencoded;)
BTW. Merci beaucoup de répondre au sudocode, vraiment l'apprecier!
Le code semble être correct. Qu'est-ce qui ne fonctionne pas? – sudocode
L'entité im posting semble être: "user = & prénom = admin & lastname = admin" auquel mon service ne répond pas bien;) J'ai besoin de: utilisateur% 5Bfirstname% 5D = admin & user% 5Blastname% 5D = admin –
Vous voulez votre les noms de paramètres à entourer d'une URL codée '[' et ']'? Est-ce que ce n'est pas une bizarrerie de votre sortie de la fonction PHP plutôt que la sortie d'encodage standard? – sudocode