【发布时间】:2019-12-24 21:21:57
【问题描述】:
我有几个 SOAP Web 服务,它们具有相同的界面,但具有不同的 URL 和命名空间。
URL 1 http://badservice.com/one 有一个命名空间“one-ns”
URL 2 http://badservice.com/two 有一个命名空间“two-ns”
当我通过 svcutil 从 http://badservice.com/one?wsdl 生成 Web 服务客户端时,我只能将它用于 http://badservice.com/one。一旦我尝试向http://badservice.com/two SOAP 服务发送请求,就会说
namespace mismatch require http://nanopetdbs.driver.maestro.ibtech.com found http://ozkaraslanpetroldbs.driver.maestro.ibtech.com
我可以在最坏的情况下为每个 Web 服务 URL 生成客户端。
在这种情况下,我需要一个防止代码重复的想法。我曾尝试在发送请求时更改命名空间,但无法成功。
我需要在运行时更改信封突出显示的位置。
【问题讨论】:
-
更新:我未能使用 svcutil 生成的客户端实现通用代码。相反,我使用了另一个库来实现通用机制:github.com/pmorelli92/SoapHttpClient/tree/master/Source/…