这是我当前的设置:
客户端应用程序 -----> 中介 Web API 服务(接收来自客户端的调用) ------> 第 3 方 RESTful 服务(接收来自中介服务的调用)
因此,如果我发起从客户端到中间服务的调用或从中间服务发起到第 3 方服务的调用,我可以使用 Fiddler 或 Wireshark检查 POSTed XML/JSON。
问题是,当我从客户端一直进行调用时,我想检查从中间服务发送到第 3 方服务的实际原始 HTTP 传出消息。如果我在包含中间服务的服务器上运行 Fiddler,我看不到从该服务器出站的 HTTP 流量。我也尝试过 Wireshark,但它也无法获取流量。不过我知道它的发生是因为第三方服务向我发回了错误。
中间服务充当客户端应用程序到第 3 方服务的外观,并在使另一个 HTTP 客户端出站到第 3 方服务之前处理来自客户端的数据。我在第 3 方服务接受传出消息时遇到问题,并且确实需要查看中间服务省略的原始 HTTP 消息(我使用 HttpClient.PostAsync
来 POST数据到第三方服务)。我在发送之前已经将其保存到数据库中,但我取出的内容似乎没问题。
所以主要问题是,如何获取我的中间服务正在 POST 到第 3 方服务的消息? Fiddler、Wireshark 或其他程序是否可以用来检查从中间服务出站的 HTTP 消息?
最佳答案
配置您的“中间 Web API 服务”以通过在同一台(或不同)计算机上运行的 Fiddler 实例代理其流量,这样就可以正常工作。
如果您的服务是用 .NET 编写的,您可以手动配置其代理:http://www.fiddler2.com/fiddler/help/hookup.asp#Q-DOTNET或者您可以更新 machine.config 或 web.config:http://www.telerik.com/automated-testing-tools/blog/eric-lawrence/13-01-08/capturing-traffic-from-net-services-with-fiddler.aspx以便其流量通过 Fiddler 实例。
关于debugging - 如何从中间Web API服务捕获HTTP流量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754832/