SOAP 操作可以有多个输出吗?
Can a SOAP operation have multiple outputs?
在 WSDL 文件中定义的 SOAP 操作是否可以有多个输出?
示例:
<operation name="getUserInfo">
<input message="getUserIdRequest"/>
<output message="getUserNameResponse"/>
<output message="getUserEmailResponse"/>
</operation>
如果我错了请纠正我,答案应该是否定的,因为一个方法只有 return 一个元素。如果是这样,如何只用一次操作就可以得到多个数据?
你想实现的是用数组完成的。您可以使用复杂类型并将 maxOccurs
属性设置为 unbounded
以便在响应中创建一个项目类型的数组。
这是此类类型的示例:
<s:complexType name="MatterListType"> <!-- List -->
<s:sequence>
<s:element name="MatterItem" type="tns:MatterItemType" minOccurs="0" maxOccurs="unbounded"/>
</s:sequence>
</s:complexType>
查看 前段时间,我在其中更详细地解释了它是如何完成的。
如果您只需要多个不同的输出字段而不是数组,请将响应本身定义为复杂类型(您也可以在上面的示例中看到这一点)。
希望对您有所帮助,如果我能进一步帮助您,请告诉我!祝你好运。
在 WSDL 文件中定义的 SOAP 操作是否可以有多个输出?
示例:
<operation name="getUserInfo">
<input message="getUserIdRequest"/>
<output message="getUserNameResponse"/>
<output message="getUserEmailResponse"/>
</operation>
如果我错了请纠正我,答案应该是否定的,因为一个方法只有 return 一个元素。如果是这样,如何只用一次操作就可以得到多个数据?
你想实现的是用数组完成的。您可以使用复杂类型并将 maxOccurs
属性设置为 unbounded
以便在响应中创建一个项目类型的数组。
这是此类类型的示例:
<s:complexType name="MatterListType"> <!-- List -->
<s:sequence>
<s:element name="MatterItem" type="tns:MatterItemType" minOccurs="0" maxOccurs="unbounded"/>
</s:sequence>
</s:complexType>
查看
如果您只需要多个不同的输出字段而不是数组,请将响应本身定义为复杂类型(您也可以在上面的示例中看到这一点)。
希望对您有所帮助,如果我能进一步帮助您,请告诉我!祝你好运。