Comment lire le contenu HttpResponseMessage en tant que texte
Je suis en utilisant HttpResponseMessage classe comme une réponse à partir d'un appel AJAX qui est de retour de données JSON à partir d'un service. Quand je fais une pause de l'exécution après l'appel AJAX est de retour à partir du service, je vois cette classe contient une propriété de Contenu qui est de type System.Net.Http.StreamContent.
Si je inspecter dans le navigateur, je vois le réseau d'appel avec succès et les données JSON comme réponse. Je me demandais simplement pourquoi je ne peux pas voir le retour JSON texte à partir de Visual Studio? J'ai cherché à travers ce Système.Net.Http.StreamContent objet et ne vois pas de données.
public async Task<HttpResponseMessage> Send(HttpRequestMessage request) {
var response = await this.HttpClient.SendAsync(request);
return response;
}
source d'informationauteur PythonIsGreat
Vous devez vous connecter pour publier un commentaire.
La représentation textuelle de la réponse est cachée dans le
Content
propriété de laHttpResponseMessage
classe. Plus précisément, vous obtenez la réponse comme ceci:response.Content.ReadAsStringAsync();
Comme tous les modernes Async méthodes,
ReadAsStringAsync
renvoie uneTask
. Pour obtenir le résultat directement, utilisez leResult
propriété de la tâche:response.Content.ReadAsStringAsync().Result;
Noter que
Result
est bloquant. Vous pouvez égalementawait
ReadAsStringAsync()
.Vous pouvez utiliser
ReadAsStringAsync
sur leContent
.Noter que généralement vous devriez être en utilisant
await
- pas.Result
.Vous pouvez vous ReadAsStringAsync() la méthode
Nous avons besoin d'utiliser l'attendent, car nous sommes à l'aide de ReadAsStringAsync() qui renvoie la tâche.