使用GetWebRequest修改SOAP请求

我试图动态修改SOAP请求中的XML数据到ASMX服务。

我在SoapHttpClientProtocol类中重写了GetWebRequest()方法,以便读取和修改RequestStream包含的XML数据。

问题是,请求似乎是空的,没有任何数据。 这是因为SOAP数据尚未生成和序列化,还是我做错了什么?

你需要的是SoapExtension 。 您可以挂钩ProcessMessageSoapMessageStage.AfterSerialize阶段来修改您的soap消息。 我过去已经这样做了,在我无法在Microsoft的WSE库中添加依赖项的情况下添加WSSE头文件(因为它不适用于Mono)。

完整教程: http : //msdn.microsoft.com/en-us/magazine/cc164007.aspx

GetWebRequest为时尚早, GetWebResponse为时已晚。