【发布时间】:2017-01-06 13:57:22
【问题描述】:
我使用的是 PHP 5.6,因为这是客户端使用的。我必须在不使用 WSDL 的情况下通过 SOAP 与 Microsoft WCF 服务进行通信。
我或多或少在那里,但是如果有一种方法可以为 SOAP 信封设置默认的 XML 命名空间,那会让我的生活变得更轻松。
我认为在 SoapClient 构造函数上设置 'URI' 选项可以做到这一点,但它没有。
WCF 服务设置此默认命名空间,因此如果没有它,我必须使用该命名空间显式标记所有SoapVar 变量才能使其工作。
是否可以通过SoapClient 设置默认命名空间?
即
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="http://tempuri.org/">
<!-- SOAP Contents -->
</soap:Envelope>
默认命名空间为http://tempuri.org/。
【问题讨论】:
-
你能展示你如何实例化 SoapClient 的代码吗?构造函数中的 $options 参数有一个 uri 选项,用于将命名空间设置为非 wsdl 模式。