web-dev-qa-db-fra.com

Comment lire le contenu HttpResponseMessage en tant que texte

J'utilise la classe HttpResponseMessage en réponse à un appel AJAX qui renvoie des données JSON d'un service. Lorsque je suspends l'exécution après que l'appel AJAX soit revenu du service, cette classe contient une propriété Content de type System.Net.Http.StreamContent. 

Si j'inspecte dans le navigateur, je vois que l'appel réseau a bien été passé et que les données JSON sont la réponse. Je me demande simplement pourquoi je ne peux pas voir le texte JSON renvoyé à partir de Visual Studio. J'ai cherché tout au long de cet objet System.Net.Http.StreamContent et je ne vois aucune donnée. 

public async Task<HttpResponseMessage> Send(HttpRequestMessage request) {
    var response = await this.HttpClient.SendAsync(request);
    return response;
}
22
PythonIsGreat

Vous pouvez utiliser ReadAsStringAsync sur Content.

var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();

Notez que vous devriez généralement utiliser await - pas .Result.

5
Timothy Shields

Vous pouvez utiliser la méthode ReadAsStringAsync () 

var result = await response.Content.ReadAsStringAsync();

Nous devons utiliser wait car nous utilisons ReadAsStringAsync () qui renvoie la tâche.

1
Niraj Trivedi