C# 为什么不在日志中获取JSON主体?

C# 为什么不在日志中获取JSON主体?,c#,json,C#,Json,我使用HTTPClient向REST web服务发送JSON对象,我捕获响应,但我只在日志中获取头,而不是响应主体中的JSON响应 有关守则如下: HttpClient httpClient = new HttpClient(); HttpResponseMessage response = await httpClient.PostAsync("https://example.com/api/checkout", new StringContent(transaction.ToStrin

我使用HTTPClient向REST web服务发送JSON对象,我捕获响应,但我只在日志中获取头,而不是响应主体中的JSON响应

有关守则如下:

 HttpClient httpClient = new HttpClient();

 HttpResponseMessage response = await httpClient.PostAsync("https://example.com/api/checkout", new StringContent(transaction.ToString(), System.Text.Encoding.UTF8, "application/json"));

log.Info("response is " + response);

如何从响应中的正文中捕获JSON响应?

您需要从内容流中读取正文

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

您需要从内容流中读取正文

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

Response是返回的对象,它包含多个属性,如Header或httpcontext

您需要将content属性读入所需的类型,例如:

var jsonObj = await response.Content.ReadAsStringAsync();
您还可以跳过ReadAsStringAsync()并直接使用以下命令执行读取:

response.content.ReasAsSync<object>();
response.content.ReasAsSync();

Response是返回的对象,它包含多个属性,如header或httpcontext

您需要将content属性读入所需的类型,例如:

var jsonObj = await response.Content.ReadAsStringAsync();
您还可以跳过ReadAsStringAsync()并直接使用以下命令执行读取:

response.content.ReasAsSync<object>();
response.content.ReasAsSync();

通过从响应对象(例如
wait response.Content.ReadAsStringAsync()
)读取它?通过从响应对象(例如
wait response.Content.ReadAsStringAsync()
)读取它?是否没有办法将它直接读取到作业对象中?我需要得到它是字符串,然后序列化它?@MattDouhan为什么像
JObject.Parse(wait response.Content.ReadAsStringAsync())
这样的东西对你来说是个问题?@MattDouhan 1st
HttpResponseMessage
不是
字符串。第二,阅读
字符串
,然后将
字符串
解析为和
作业对象
,就像柯克·拉金所说的那样,没有办法直接将其读入作业对象?我需要得到它是字符串,然后序列化它?@MattDouhan为什么像
JObject.Parse(wait response.Content.ReadAsStringAsync())
这样的东西对你来说是个问题?@MattDouhan 1st
HttpResponseMessage
不是
字符串。第二,阅读
字符串
,然后像柯克·拉金说的那样,将
字符串
解析为和
作业对象