Web Services 如何检查在web服务请求期间发送了什么xml?

yvgpqqbh  于 2022-11-15  发布在  其他
关注(0)|答案(4)|浏览(136)

是否有一种方法可以获取. net中SOAP请求生成的原始XML。我不知道如何准确地问这个问题,但现在开始
我添加了web引用并调用了一些方法。是否有一种方法可以知道发送了什么XML。仅用于调试目的,这样快速而肮脏的方法就足够了
另外,由于使用了SSL,因此在这里进行剪切没有任何帮助

xxhby3vn

xxhby3vn1#

我通常使用Fiddler来执行这类操作。
在配置文件中粘贴以下内容:-

<system.net>
    <defaultProxy enabled="true">
        <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
    </defaultProxy>
</system.net>

启动fiddler,你应该能够监控所有来自你的应用程序的http流量。在关闭fiddler之前,只需将enabled设置为false。

up9lanfz

up9lanfz2#

可以创建SoapExtensionAttribute并将其应用于Web服务方法。
建立衍生自SoapExtensionAttribute的类别。
建立另一个衍生自SoapExtension的类别。
SoapExtensionAttribute的类型应该是SoapExtension的类型。
一旦进入SoapExtension,就可以访问数据被序列化/反序列化的时刻。
下面是4个具体阶段:

SoapMessageStage.BeforeSerialize
SoapMessageStage.AfterSerialize           *
SoapMessageStage.BeforeDeserialize        *
SoapMessageStage.AfterDeserialize

带'*'的是您要访问流的阶段。从那里,您可以记录进出Web服务的XML。
这就是我们在这里做的,它的工作完美。
以下链接详细解释了更多信息:http://progtutorials.tripod.com/soapext.htm
希望对你有所帮助。

aor9mmx1

aor9mmx13#

通过网络发送任何数据的最简单方法是安装wireshark,并在原始数据通过网络堆栈时对其进行监听。这样做的好处是,您可以在任何其他应用程序或服务修改数据之前,真正看到正在发送的数据。web上有很多examples and blogs
你也可以用它来做replay soap requests。它对其他网络也很好-不仅仅是SOAP,还有普通的HTTP和TCP,甚至串行通信。

相关问题