Android HTTPUrlConnection : comment mettre des données post en http sur le corps?
J'ai déjà créé mon HTTPUrlConnection :
String postData = "x=val1&y=val2";
URL url = new URL(strURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Set-Cookie", sessionCookie);
conn.setRequestProperty("Content-Length", "" + Integer.toString(postData.getBytes().length));
//How to add postData as http body?
conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);
Je ne sais pas comment définir postData dans le corps http. Comment faire? Aurais-je une meilleure utilisation HttpPost
à la place?
Merci pour votre aide.
- Voulez-vous envoyer les données Json?
- Ne puis-je pas simplement l'envoyer comme une Chaîne de caractères ? J'ai l'habitude de le faire dans iOS :
NSString *string = @"x=val1&y=val2"; NSData *postData = [string dataUsingEncoding:NSISOLatin1StringEncoding allowLossyConversion:NO]; [request setHTTPBody:postData];
- Salut à tous, je voudrais parler de vous au sujet de l'ajout de paramètres à une requête POST dans android
Vous devez vous connecter pour publier un commentaire.
Si vous voulez envoyer de la Chaîne de seulement essayer de cette façon:
Mais si vous voulez envoyer en Json changement de type de Contenu:
et maintenant, notre
str
on peut écrire:Espère que ça va aider,
Guruparan du lien dans le commentaire ci-dessus donne une belle réponse à cette question. Je recommande fortement de le regarder. C'est là le principe qui rend sa solution de travail:
De ce que je comprends, le HttpURLConnection représente le corps de la réponse comme un OutputStream. Si vous avez besoin d'appeler quelque chose comme:
obtenir la connexion de sortie du flux
écrire le corps de la réponse
fermer le flux de sortie
et continuez votre petit bonhomme de chemin avec la connexion (que vous aurez encore besoin de le fermer).