一尘不染

如何以文本形式读取HttpResponseMessage内容

json

我使用HttpResponseMessage类作为AJAX调用的响应,该调用从服务返回JSON数据。从服务返回AJAX调用后暂停执行时,我看到此类包含一个Content属性,该属性的类型为System.Net.Http.StreamContent。

如果在浏览器中进行检查,我会看到成功进行了网络调用,并以JSON数据作为响应。我只是想知道为什么我无法在Visual
Studio中看到返回的JSON文本?我搜索了整个System.Net.Http.StreamContent对象,但没有看到任何数据。

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

阅读 485

收藏
2020-07-27

共1个答案

一尘不染

响应的文本表示形式隐藏在该类的Content属性中HttpResponseMessage。具体来说,您将获得如下响应:

response.Content.ReadAsStringAsync();

与所有现代 Async 方法一样,ReadAsStringAsync返回Task。要直接获得结果,请使用Result任务的属性:

response.Content.ReadAsStringAsync().Result;

请注意这Result是阻塞。您也可以await ReadAsStringAsync()

2020-07-27