【发布时间】:2011-12-01 20:28:04
【问题描述】:
我正在使用 PHP SoapClient 来使用 Web 服务..
当服务参数很简单时一切正常,例如 $client->GetProductById(array('productId' => 'ID'));有诀窍吗...
但是我需要访问的服务之一需要更复杂的参数。我使用 SoapUI 来测试 web 服务,并且使用 SoapUI 我可以轻松地使其工作。
问题是我不能让它与 PHP SoapClient 一起工作,我根本找不到一种方法来表示所有这些参数..
发送到服务器的 Soap 消息是这个(从 SoapUI 复制的)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:slps="http://www.microsoft.com/slps/">
<soapenv:Header/>
<soapenv:Body>
<slps:GetLicensesByFilter>
<slps:filter>
<slps:ExcludeCommercial>false</slps:ExcludeCommercial>
<slps:ExcludeTrial>false</slps:ExcludeTrial>
<slps:IssueDateRange>
<slps:End>2011-12-31T00:00:00.000Z</slps:End><slps:Start>2011-11-01T00:00:00.000Z</slps:Start>
</slps:IssueDateRange>
<slps:ProductId>1275b704-7622-c2xx-922e-76186497f744</slps:ProductId>
<slps:SkuId>A35138F43-0119-0719-802a-B48CCE6229A4</slps:SkuId>
</slps:filter>
<slps:retrievalOptions>LicenseInfo</slps:retrievalOptions><slps:pageIndex>0</slps:pageIndex>
</slps:GetLicensesByFilter>
</soapenv:Body>
</soapenv:Envelope>
【问题讨论】:
-
我的解决方法和作者发现的一样。
-
@BarCa:请在下面添加您的解决方案作为答案(请参阅我是如何做到这一点的),然后接受您的答案作为答案(是的,它就是这样工作的,并且完全被接受)。谢谢!
标签: php soap nested webservice-client soap-client