2
我想调用一个只有WSDL文件的Web服务。我会与一般所替代上下文敏感的名称列表从WSDL文件的重要位:使用包含WSDL中的complexType的PHP访问SOAP Webservice
功能我想打电话:
<wsdl:operation name="myFunction">
<wsdl:input message="ns:myFunctionRequest" wsaw:Action="urn:myFunction"/>
<wsdl:output message="ns:myFunctionResponse" wsaw:Action="urn:myFunctionResponse"/>
</wsdl:operation>
功能的描述:
<xs:element name="myFunction">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="param0" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="param1" nillable="true" type="somens:MyType"/>
<xs:element minOccurs="0" name="param2" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
'MyType'的描述:
<xs:complexType name="MyType">
<xs:sequence>
<xs:element minOccurs="0" name="date1" nillable="true" type="xs:dateTime"/>
<xs:element minOccurs="0" name="date2" nillable="true" type="xs:dateTime"/>
<xs:element minOccurs="0" name="string1" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="int1" nillable="true" type="xs:int"/>
<xs:element minOccurs="0" name="int2" nillable="true" type="xs:int"/>
</xs:sequence>
</xs:complexType>
我在想我的PHP代码看起来有点像e这:
$client = new SOAPClient('my soap URL');
$result = $client->setState(array('param0'=>'bla', 'param1'=><undecided>, 'param2'=>'bla');
我的问题是什么放在未定部分。这应该是一个将复杂类型中的名称映射到值的数组吗?还是应该是一个我用相应类型的字段来定义自己的类?我目前没有一个好的试验场来尝试这个方法,我希望能够在我确实可以使用之前继续前进。
我看到很多与SOAP无关的问题,所以我希望我会幸运:)。如果我碰巧找到自己,我当然会分享我的结果。
提前致谢!
谢谢!这非常简洁,重点突出。正是我需要的。我会在这里再次发表评论,以确认它在我必须有能力进行测试时才有效。 – 2010-09-22 06:02:00
我测试过它,它工作。 – 2010-10-04 07:28:38
去了霍伦和丹克杰克沃尔德贝莱夫德黑德姆,甚至是尼特,迪特哈特斯尼特伊德莱恩的赫德和其他人; – Wrikken 2010-10-04 18:05:00