c# - 使用 HttpClient 如何查看请求内容主体?

标签 c# .net http

出于调试目的,我想查看我的 HTTP 请求的请求主体包含哪些内容。这是我现在得到的:

var httpResponseMessage = await _httpClient.PostAsync(uri, objectToInsert, jsonFormatter);

//This throws an exception
var thisDoesntWork = await httpResponseMessage.RequestMessage.Content.ReadAsStringAsync();

这会抛出一个 ObjectDisposedException。如何查看请求正文以确保发送的 JSON 正确无误?

最佳答案

简短的回答是您不能在请求已经发送之后。 HttpClient 在发出请求后处理内容主体,以方便开发人员。参见 Why do HttpClient.PostAsync and PutAsync dispose the content?了解一些细节。

作为替代方案,您可以继承现有的 HttpContent 实现,覆盖 Dispose 方法,并在处理之前记录内容的主体。

或者,按照建议,使用外部工具来监控运行中的请求。

关于c# - 使用 HttpClient 如何查看请求内容主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39151972/

相关文章:

c# - MS SQL如何记录负时间

java - 你如何以编程方式在 Java 中下载网页

c# - 如何区分用户点击链接和页面自动重定向?

c# - Blazor Wasm - 无法从 'method group' 转换为 'EventCallback'

c# - 是否可以在后台线程上创建一个对象而不在主线程上引用?

c# - StringWriter 未沿所有异常路径处理

c# - 为什么在运行时出现通用约束冲突?

c# - WCF 跨域策略安全错误

http - 需要JS文本!插件和加载超时

node.js - Websocket nodejs传出中间件