WSDL 中的数组响应 - SOAP PHP
Posted
技术标签:
【中文标题】WSDL 中的数组响应 - SOAP PHP【英文标题】:Array response in WSDL - SOAP PHP 【发布时间】:2013-04-16 19:51:07 【问题描述】:在我的 wsdl 代码中,我得到一个整数,我想在数组中返回结果。 为什么在我的输入中我只有一个整数,我需要数组中的结果,因为在我的 php 函数中,我想从数据库中返回来自客户端选择的整数的信息。
例如,我的客户发送 1,在我的 php 中,我从 DB 中的“1”获取信息作为他的“ID (int)”、“Name(string)”、“Number1(int)”、“Number2(int) ","客户实际需求的日期和时间 « YYYY-MM-DD hh:mm:hh » (??)"
我该怎么做?
谢谢,
这是我的实际 wsdl,输入一个整数,输出一个整数:
<message name='getResultRequest'>
<part name='numeropark' type='xsd:int'/>
</message>
<message name='getResultResponse'>
<part name='result' type='xsd:string'/>
</message>
<portType name='getResultPortType'>
<operation name='getResult'>
<input message='tns:getResultRequest'/>
<output message='tns:getResultResponse'/>
</operation>
</portType>
<binding name='getResultBinding' type='tns:getResultPortType'>
<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
<operation name='getResult'>
<soap:operation soapAction='urn:xmethods-delayed-quotes#getResult'/>
<input>
<soap:body use='encoded' namespace='urn:xmethods-delayed-calcul'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
</input>
<output>
<soap:body use='encoded' namespace='urn:xmethods-delayed-calcul'
encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
</output>
</operation>
</binding>
<service name='getResultService'>
<port name='getResultPort' binding='getResultBinding'>
<soap:address location='http://XXX.XXXX.com/soap/soap-server.php'/>
</port>
</service>
【问题讨论】:
【参考方案1】:要返回数组,您应该定义一个 complexType。例如,如果你想返回字符串数组,你的 WSDL 应该包含这部分:
<wsdl:types>
<xsd:schema targetNamespace="http://schema.example.com">
<xsd:complexType name="resultArray">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]" />
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<message name='getResultRequest'>
<part name='numeropark' type='xsd:int'/>
</message>
<message name='getResultResponse'>
<part name='result' type='tns:resultArray'/>
</message>
我建议你使用任何 WSDL 生成器来创建描述文件。
【讨论】:
以上是关于WSDL 中的数组响应 - SOAP PHP的主要内容,如果未能解决你的问题,请参考以下文章
当我使用wsdl和端点url执行我的curl php请求时获得空白响应
如何使用 Apache Axis2 和 WSDL2Java 向 SOAP 响应添加命名空间引用