我正在尝试从 PHP 中的 SOAP 服务器获取数据。到目前为止,我设法连接了用户名和密码并检索了安全令牌。现在我正在尝试使用一个函数来获取更多数据。但它不起作用。我总是收到消息:
错误:SoapFault 异常:[HTTP] C:\Users\user1\Documents\wamp\www\soap\index.php:93 堆栈跟踪中的错误请求:#0 [内部函数]:SoapClient->__doRequest('__soapCall( 'exportOrder', Array) #2 {main}
我觉得这与我处理 securityToken 的方式有关。我应该如何在我的代码中处理它?
我是 SOAP 和 PHP 的初学者。任何帮助将不胜感激。谢谢。
这是我的 PHP 代码:
<?php
$wsdl = "http://abcd.org/abcdServer/webservices/auth/ExternalOrderWebService?wsdl";
$client = new SoapClient($wsdl, array(
'soap_version' => SOAP_1_1,
'exceptions' => 1,
'trace' => 1,
'location'=>$wsdl
)
);
try {
$args = array(
'orderId'=>'00119-23',
'SecurityToken'=>'d989aaf6-ea3c-429e-996c-4722b1d2ce3e'
);
$result = $client->__soapCall('exportOrder', array($args));
} catch (SoapFault $e) {
echo "Error: {$e}";
}
?>
这里是 SOAPUI 中的 xml。当我像这样指示 SecurityToken 和 orderId 时,我会工作。我得到了结果。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mis="http://abcd.webservices.xyz.abcd.eu/">
<soapenv:Header>
<SecurityToken>d989aaf6-ea3c-429e-996c-4722b1d2ce3e</SecurityToken>
</soapenv:Header>
<soapenv:Body>
<ord:exportOrder>
<key>
<orderId>00119-23</orderId>
</key>
</ord:exportOrder>
</soapenv:Body>
</soapenv:Envelope>
我试图查看其他相关主题,但没有帮助(其他问题太具体)