如何获取SOAP请求消息的xml表示?

如何获取SOAP请求消息的xml表示?

问题描述:

我有一个SOAP Web服务的WSDL,我通过我的MVC应用程序来使用它。如何获取SOAP请求消息的xml表示?

从将WSDL作为Web服务添加到我的Visual Studio解决方案中,它会自动为我创建一个代理类,并处理所有序列化/不稳定,这对我来说真的很棒。我一直在使用这个代理类来调用/发送我的SOAP请求到Web服务(使用纯C#代码并且不涉及XML),并且我收到了我的响应消息,并且一切都很好。

但是,现在我需要找到什么是我发送到Web服务的SOAP消息的确切XML表示。我怎样才能找到/找到/做到这一点?

+0

您可以随时跟踪和编写SOAP请求/响应。检查此链接:https://*.com/questions/461744/get-soap-message-before-sending-it-to-the-webservice-in-net。如果您只希望检查并不记录或写入,我会推荐使用Fiddler。 – praty

,你可以做这样的

var serxml = new System.Xml.Serialization.XmlSerializer(request.GetType()); 
var ms = new MemoryStream(); 
serxml.Serialize(ms, request); 
string xml = Encoding.UTF8.GetString(ms.ToArray()); 

其中XML是你的原始SOAP

这很容易使用SOAPUI。

  1. 下载SoapUI
  2. 创建一个指向您的 WSDL的新SOAP项目。 enter image description here

  3. 导入WSDL打开的请求,并在一些 填入值后。换句话说,创建一个真正的SOAP请求。

    enter image description here

  4. 按绿色播放按钮在服务器上执行的请求。

    enter image description here

  5. 得到的回应 enter image description here
+0

简而言之,一个答案!投票! –

+0

谢谢你的回复。这肯定有帮助。但是,我正在查找请求的日志记录。我正在查看SOAPExtension,但由于某种原因,在我创建了扩展类并修改了我的web.config文件后,我仍然无法查看在调用soap服务时创建的任何日志。请注意,如果你有任何建议吗? – CB4

+0

@ Cb4我使用了AOP和Log4Net的混合体,它像一个魅力一样工作。 – Namphibian