有没有办法插入"wsmp:"c#中的soap方法请求
本文关键字:quot 中的 soap 方法 请求 有没有 wsmp 插入 | 更新日期: 2023-09-27 18:18:42
我需要构建一个c# web客户端,可以使用使用wsse安全性的现有java weblogic web服务。改变现有的java weblogic web服务来使用c#是不可能的。我希望很容易找到解决办法。
对于客户端,我使用c#和Microsoft.Web。VisualStudio 2010中的Services3。我了解Web。Services3已被弃用,但我无法找到一个WCF解决方案,可以在其中添加所需的wsse:Security标签,并按web服务所需的顺序添加。使用Web。Service3中,生成的soap请求不包括soap主体中所需的soap属性标记。使用soapUI进行测试,工作请求和非工作请求之间的唯一区别是soap主体中缺少"wsmp:"标记。如果我能找到一种方法将"wsmp:"插入到soap主体的方法标记中,c#请求将工作。
在soap正文中,它缺少web服务定义的soap标头标记"wsmp:"。是否有一种方法可以将这个标签插入到c#中的客户端请求中?
这是需要的正文——
`<soapenv:Body>
<wsmp:getForm xmlns:wsmp="http://www.microstrat.com/wsmpServices/1.0">
<wsmp:documentid><documentid>8502</documentid><formnumpacketid /></wsmp:documentid>
</wsmp:getForm>
</soapenv:Body>`
这是生成的主体——注意是getForm而不是wsmp:getForm标签:
`<soapenv:Body>
<getForm xmlns="http://www.microstrat.com/wsmpServices/1.0">
<documentid xmlns=""><documentid>8502</documentid><formnumpacketid /></documentid>
</getForm>
</soapenv:Body>`
关于如何从生成的内容到需要的内容,有任何帮助或指针吗?
看起来c#端生成的xml确实是有效的,所以我猜是Java服务器的特性迫使您执行此要求。
我不太了解WSE库的内部结构,无法强制库使用特定的xml名称空间前缀,但是这里有一种方法,我已经用我认为合适的方式成功地重写了SOAP xml:使用GetWebRequest
修改SOAP请求欢呼,Anash