Comment envoyer un corps Post dans la HttpClient demande dans Windows Phone 8?
J'ai écrit le code ci-dessous pour envoyer les en-têtes, les paramètres post. Le problème est que je suis en utilisant SendAsync depuis ma demande peut être GET ou POST. Comment puis-je ajouter un POST Corps à cette fiche de code, de sorte que si il n'y a aucun corps post de données il est ajouté dans la demande que je fais et si sa simple GET ou POST sans corps il envoyer la demande de cette façon. Veuillez mettre à jour le code ci-dessous:
HttpClient client = new HttpClient();
//Add a new Request Message
HttpRequestMessage requestMessage = new HttpRequestMessage(RequestHTTPMethod, ToString());
//Add our custom headers
if (RequestHeader != null)
{
foreach (var item in RequestHeader)
{
requestMessage.Headers.Add(item.Key, item.Value);
}
}
//Add request body
//Send the request to the server
HttpResponseMessage response = await client.SendAsync(requestMessage);
//Get the response
responseString = await response.Content.ReadAsStringAsync();
- Veuillez voir le jour réponse, il a une belle approche.
Vous devez vous connecter pour publier un commentaire.
Cela dépend de quel contenu que vous avez. Vous devez initialiser votre
requestMessage.Content
propriété avec de nouveaux HttpContent. Par exemple:où
content
est votre contenu codé. Vous devriez également inclure correct-tête Content-type.Mise à JOUR:
Oh, il peut être encore plus agréable (à partir de ce réponse):
requestMessage.Content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json");
Vous pouvez également utiliser vous JsonSerializer pour sérialiser dans une chaîne de caractères comme vous l'avez peut actuellement être en train de faire, puis de transmettre cette chaîne comme premier paramètre de la StringContent constructeur.J'ai implémenté de la manière suivante. Je voulais un générique
MakeRequest
méthode qui pourrait s'appeler de mon API et de recevoir du contenu pour le corps de la demande - et aussi deserialise de la réponse dans le type souhaité. J'ai créer unDictionary<string, string>
objet à la maison du contenu à présenter, et ensuite définir laHttpRequestMessage
Content
bien avec elle:Méthode générique d'appeler l'API:
Appel de la méthode: