我想查看 HTTP 请求的请求正文包含哪些内容以进行调试。这是我现在所拥有的:
var httpResponseMessage = await _httpClient.PostAsync(uri, objectToInsert, jsonFormatter);
//This throws an exception
var thisDoesntWork = await httpResponseMessage.RequestMessage.Content.ReadAsStringAsync();
Run Code Online (Sandbox Code Playgroud)
这会抛出一个ObjectDisposedException. 如何查看请求正文以确保发送的 JSON 正确?
简短的回答是,在请求发送后您不能再这样做。HttpClient 在发出请求后处理内容主体,以方便开发人员。请参阅为什么 HttpClient.PostAsync 和 PutAsync 处理内容?一些细节。
作为替代方案,您可以从现有的 HttpContent 实现继承,重写 Dispose 方法,并在处置之前记录内容正文。
或者,按照建议,使用外部工具来监控运行中的请求。