如何捕获Web服务的原始请求/响应

时间:2013-05-31 05:15:18

标签: c# .net web-services

我必须制作可与网络服务配合使用的桌面客户端。客户端在.wsdl(服务合同)和.xsd(数据合同)中提供。我用svcutil.exe生成了客户端。我有想法在客户端处于调试模式时,以Raw格式写入所有请求/响应的日志文件(就像它可以在Fiddler2中捕获但是通过代码)。你能否告诉我如何做到这一点,或者只是让我朝着正确的方向前进。

我生成的服务是System.ServiceModel.ClientBase。

的实现

很多。

2 个答案:

答案 0 :(得分:2)

您应该能够使用SOAPExtensions捕获消息流,包括请求标头。您需要在app.config中配置扩展程序。

请参阅此示例中的图4:http://msdn.microsoft.com/en-us/magazine/cc164007.aspx

以下是如何入门:http://msdn.microsoft.com/en-us/library/s25h0swd(v=vs.100).aspx

答案 1 :(得分:2)

你有三个选择,

  

首先:由于你有wsdl,你可以使用SoapUI生成代理并更改请求并运行它将显示详细的响应。

     

第二:由于您使用的是.net客户端,因此可以将该过程附加到第三方工具。例如HttpAnalyser

     

第三:如果您无法购买第三方软件,请使用wireshark来捕获任何协议内容。