我想在我的应用程序中记录所有由System.Net.Http.HttpClient
完成的HTTP请求。重要提示:我还需要记录在System.Net.Http.HttpClient
上实现的第三方包所做的请求,这意味着我不能直接在HttpClient
示例上做一些技巧。
到目前为止,我找到了两种方法:System.Diagnostics.Tracing.EventListener
和IObserver<DiagnosticListener> / IObserver<KeyValuePair<string, object>>
。第一个提供了较少的信息,如模式、HTTP版本、URL和查询参数。第二个提供了更多的信息,包括HTTP头。但是,它们都不能观察POST请求主体,在我的情况下,这是我需要的主要部分。
我认为这是因为POST主体不是你可以一次捕获的东西-主体可以非常大,在引擎盖下它通常是以流的方式实现的。所以这样的观察者也应该以某种流的方式观察。
可能吗PS:应用程序顶部的HTTP代理不是一个选项-大多数请求都是HTTPS,所以我不能在应用程序之外查看它们的内容。
1条答案
按热度按时间lxkprmvk1#
实现这一点的一种方式可以是使用中间件。
并在启动中注册,如下所示