这是紧迫的问题,经过数天的努力仍未解决.
在server.php中,我想在调用“ GetAuditInformation”方法时返回递增的序列号.
所以我在顶部写了这个简单的函数:
function GetAuditInformation($serialNumber) {
$serialNumber=$serialNumber +1;
return $serialNumber;
}
ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer('wsMRMAudit.wsdl');
$server->addFunction("GetAuditInformation");
$server->handle();
?>
我使用plumvoice SOAPtester进行了测试,它能够通过WSDL获取方法.
但是输入一个序列号,说…. 1000,它应该返回1001,但它返回NULL.这是为什么?
解决方法:
传递到函数中的参数不是数字,而是一个对象.您的函数定义应为:
function GetAuditInformation($x)
{
return array('GetAuditInformationResult' => $x->SerialNumber + 1);
}
对于完整的示例,让我也发布测试脚本,该脚本可以顺便说一句:
$s = new SoapClient('http://www.tabernus.com/ws/soap/server.php?WSDL', array('trace'=>true));
var_dump($s->GetAuditInformation(array('SerialNumber' => 1000)));
$req = $s->__getLastRequest();
function GetAuditInformation($x)
{
return array('GetAuditInformationResult' => $x->SerialNumber + 1);
}
$server = new SoapServer('http://www.tabernus.com/ws/soap/server.php?WSDL', array(
'actor' => 'http://www.tabernus.com/ws/soap/',
'soap_version' => SOAP_1_2
));
$server->addFunction('GetAuditInformation');
$server->handle($req);
标签:wsdl,php,soap
来源: https://codeday.me/bug/20191201/2080160.html