La réception de données JSON de retour de la requête HTTP
J'ai une requête web qui fonctionne correctement, mais il est juste de retourner à l'état OK, mais j'ai besoin de l'objet que j'ai demandé qu'il revienne. Je ne suis pas sûr de la façon d'obtenir la valeur json je demande. Je suis nouveau à l'aide de l'objet HttpClient, est-il une propriété que je suis absent dehors sur? J'ai vraiment besoin de l'objet retourné. Merci pour toute aide
De faire l'appel des pistes de beaux retourne l'état OK.
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var responseMsg = client.GetAsync(string.Format("http://localhost:5057/api/Photo?)).Result;
L'api méthode get
//Cut out alot of code but you get the idea
public string Get()
{
return JsonConvert.SerializeObject(returnedPhoto);
}
- Êtes-vous demander comment obtenir le contenu de la réponse lors de l'utilisation de l' .NET 4.5 HttpClient classe?
Vous devez vous connecter pour publier un commentaire.
Si vous faites référence au Système.Net.HttpClient dans .NET 4.5, vous pouvez obtenir le contenu renvoyé par GetAsync à l'aide de la HttpResponseMessage.Contenu propriété comme un HttpContent-objet dérivé. Vous pouvez alors lire le contenu d'une chaîne à l'aide de la HttpContent.ReadAsStringAsync méthode ou comme un flux de données à l'aide de la ReadAsStreamAsync méthode.
La HttpClient de documentation de classe comprend cet exemple:
client.GetStringAsync(...)
? N'était-ce pas autour de en 2012. Ils avaient à la fois de lever une exception si la réponse n'a pas été200
droit?GetStringAsync
ce qui signifie que vous ne savez pas ce que le message de réponse a été. Vous avez probablement ne pas vous voulez jeter si un 3xx réponse est renvoyée. Vous voulez probablement réessayez sans jeter si une limitation d'erreur est retourné.GetAsync<T>
? Ou GetStreamAsync et passer le flux d'Json.NET en évitant la chaîne temporaire? Encore une fois, il peut être préférable d'utiliserGetAsync
d'abord, puis l'accès au contenu de l'objetBâtiment sur @Panagiotis Kanavos réponse, voici une méthode de travail à titre d'exemple, qui est également de retour de la réponse comme un objet au lieu d'une chaîne de caractères:
Garder à l'esprit que ce n'est qu'un exemple et que vous auriez probablement souhaitez utiliser
HttpClient
comme une instance partagée au lieu de l'utiliser en un à l'aide de la clause.if (response != null)
est exécutée avant l'appel est terminé?Ce que je fais d'habitude, similaire à répondre à l'un:
Où le "modèle" est votre modèle C# de la classe.