【发布时间】:2012-03-28 23:40:22
【问题描述】:
我正在使用 PHP 5.3.10 连接到使用 SOAP 公开其方法的 WCF Web 服务。我希望能够使用 SoapClient,但我无法正确地制定请求。
WSDL 似乎为 1.0(wsdl:definitions 标记中的 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/)。
WSDL 中的每个操作的定义类似于:
<wsdl:operation name="GetPortfolios">
<soap:operation soapAction="urn:IPortfolio/GetPortfolios" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
我想以数组的形式创建对主体的请求,以便肥皂主体最终看起来像这样:
<GetPortfolios>
<Portfolio>*con*</Portfolio>
<Token>1234</Token>
</GetPortfolios>
这可以用 PHP 5.3.10 SoapClient 完成吗? (请举个例子)。如果对 SoapClient 实例的调用称为 __soapCall(),我更愿意。
更新: 绑定上方是另一个 WSDL 的导入。
原来的 WSDL 是https://clienttest.praemium.biz/praemiumclientwebservice/PortfolioService.svc?wsdl。
导入看起来像:<wsdl:import namespace="" location="https://clienttest.praemium.biz/PraemiumClientWebService/PortfolioService.svc?wsdl=wsdl0"/>。
并且该提供者在操作级别上提供有关请求和响应的更多信息,并且还执行另一个导入:
<xsd:schema targetNamespace="/Imports">
<xsd:import schemaLocation="https://clienttest.praemium.biz/PraemiumClientWebService/PortfolioService.svc?xsd=xsd0"/>
</xsd:schema>
正是这种导入详细说明了请求中预期的实际元素以及响应中预期的元素。
顺便说一句,PHP SoapClient 可以像这样处理链式导入吗?
【问题讨论】:
标签: php soap-client