我正在学习php,试图从wsdl服务获取数据。我请求数据的服务方法需要两个参数,其中一个参数需要arrayOfstring类型。因此,不知何故,我需要将类似于此ACCT_ID的值传递给soapClient方法。下面是该方法需要的参数:
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ACCT_ID" type="tns:ArrayOfString"/>
<s:element minOccurs="1" maxOccurs="1" name="UserNumber" type="s:long"/>
</s:sequence>ACCT_ID需要通过PHP soapclient传递给它的arrayOfString类型。我被困在如何做到这一点上。这就是我到目前为止所处的位置:
$client = new soapClient('http://webservice/accountdata.asmx?wsdl', array('trace' => 1));
//method paramaters
$user_num = 20;
$acct_id = "98765431654654654656, 44986532156469898442";
$ACCT_ID = explode(" ", $acct_id);
$params = array("ACCT_ID" => $ACCT_ID[0], "UserNumber" => $user_num);
$response = $client->Account_Data($params);因此,我获得了带有Account_Data方法的soapClient对象,并将$params传递给它。我已经使用Storm工具使用这些参数对其进行了测试,并且确实获得了正确的xml响应。我可以在浏览器源码中看到UserNumber正在被发送到see服务,但ACCT_ID没有。我尝试了所有的方法,但我不确定从哪里开始。如何通过php将arrayOfString类型参数传递给webservice?谢谢!
发布于 2014-05-31 23:18:27
将参数转换为json字符串。
$acct_id = array(806796224000,000000000000);
$ACCT_ID = json_encode($acct_id);https://stackoverflow.com/questions/23971569
复制相似问题