我正在使用PHP 5.2.5.5和Moodle 1.9。
当我在没有参数的情况下进行简单的SOAP调用时,它可以工作。但是,只要我使用带参数的调用,它就会失败。如果我使用Fiddler捕获SOAP请求,我发现它根本没有将参数添加到soap请求中。
这是我的示例代码:
$WSDL = 'http://www.nanonull.com/TimeService/TimeService.asmx?WSDL';
$client = new SoapClient($WSDL);
$response = $client->getUTCTime(); // WORKS
$response = $client->getTimeZoneTime('ZULU'); // SOAP FAULT
有什么建议吗?
答案 0 :(得分:4)
您还需要传递该参数的名称(并传入数组):
$WSDL = 'http://www.nanonull.com/TimeService/TimeService.asmx?WSDL';
$client = new SoapClient($WSDL);
$response = $client->getUTCTime(); // WORKS
$response = $client->getTimeZoneTime(array('timezone'=>'ZULU')); //works
print_r( $response);
请参阅:http://www.nanonull.com/TimeService/TimeService.asmx?op=getTimeZoneTime
和:http://www.nanonull.com/TimeService/TimeService.asmx
杰克