如何将SOAP标头作为XML获取?

时间:2010-07-28 13:51:31

标签: c# xml asmx soapheader

如何将我的Web服务函数的SOAP标头作为xml?

我需要一个工作SOAP标头的XML版本,以作为SOAP标头损坏的人的示例。他正在使用不同的编程语言,但由于标题是以XML格式发送的,我们希望我们可以轻松地比较它们。我正在使用C#和ToString()只是给我对象的名称。在谷歌搜索之后,我尝试了Fiddler,但是没有抓到任何东西,而且SOAP Extensions看起来太复杂了,看起来非常简单。

2 个答案:

答案 0 :(得分:4)

使用ASMX Web服务没有简单的方法。如果您使用的是WCF,那么启用消息记录将是一件小事。

Fiddler应该抓住一切,非常值得学习如何使用。请务必查看在线文档,了解如何捕获从localhost到localhost的流量。

答案 1 :(得分:1)

this question的已接受答案提到您可以使用soapUI捕获到Web服务的流量。您可以将其用作代理或HTTP隧道,以捕获发送到Web服务的消息。我认为在HTTP隧道模式下使用它是有道理的,因为除了将URL指向soapUI而不是实际服务之外,您不必对客户端执行任何操作。

The soapUI website talks about the SOAP Monitor feature,虽然我不认为它为设置HTTP隧道提供了很好的解释。

以下是涉及的步骤(基于soapUI 3.0.1):

  1. 打开肥皂UI
  2. 创建一个新的soapUI项目...... 2.1为您的项目命名 2.2输入服务的WSDL路径(http://localhost/.../YourService.asmx?WSDL
  3. 右键单击刚刚创建的项目
  4. 选择“启动SOAP监视器”
  5. 选择“HTTP隧道”
  6. 为“端口”指定未使用的端口号。默认可能会有效。
  7. 在“为HTTP隧道设置端点”
  8. 中输入Web服务的URL
  9. 如果您使用的是SSL,那么您可能需要填写其他一些字段;否则,请单击“确定”
  10. HTTP隧道正在运行,因此现在只需重新配置客户端以使用HTTP隧道而不是实际的Web服务。因此,如果您的实际服务是“http://localhost:1234/YourService.asmx”,请重新配置您的客户端以使用“http://localhost:{Port} /YourService.asmx”,其中{Port}是您在步骤#6中输入的数字。< / LI>
  11. 现在只需正常运行您的客户端。您将看到soapUI界面中记录的流量。选择一条消息,然后单击窗口底部的“消息内容”按钮以查看实际的SOAP消息。