Como ler o conteúdo HttpResponseMessage como texto

Estou usando a class HttpResponseMessage como uma resposta de uma chamada AJAX que está retornando dados JSON de um serviço. Quando eu pausar a execução depois que a chamada AJAX volta do serviço, vejo que essa class contém uma propriedade Content que é do tipo System.Net.Http.StreamContent.

Se eu inspecionar no navegador, vejo a chamada de rede sendo feita com sucesso e os dados JSON como a resposta. Só estou me perguntando por que não consigo ver o texto JSON retornado de dentro do Visual Studio? Eu procurei por este object System.Net.Http.StreamContent e não vi nenhum dado.

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

A representação textual da resposta está oculta na propriedade Content da class HttpResponseMessage . Especificamente, você obtém a resposta assim:

response.Content.ReadAsStringAsync();

Como todos os methods modernos do Async , o ReadAsStringAsync retorna uma Task . Para obter o resultado diretamente, use a propriedade Result da tarefa:

response.Content.ReadAsStringAsync().Result;

Observe que o Result está bloqueando. Você também pode await ReadAsStringAsync() .

Você pode usar ReadAsStringAsync no Content .

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

Note que você geralmente deve estar usando await – não .Result .

Você pode usar o método ReadAsStringAsync ()

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

Precisamos usar o wait porque estamos usando o ReadAsStringAsync () que retorna a tarefa.