php server webservice不返回值

时间:2012-12-29 11:31:22

标签: php soap

我正在编写我的第一个php webservice(服务器端),但客户端调用没有收到任何数据 我正在使用Web上的SoapClient检查服务(http://soapclient.com/SoapClient),回顾一下AggiornaCampionati函数,这是回复:

  <?xml version="1.0" encoding="UTF-8" ?> 
 - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.aicsparma.it/websrvs">
 - <SOAP-ENV:Body>  
 <ns1:AggCampiosResponse />   
 </SOAP-ENV:Body>  
 </SOAP-ENV:Envelope>

为空(返回消息正常(AggCampiosResponse))!
服务器代码非常简单:

<?php

function AggiornaCampionati($args) {
    //return gettype($args)." - ".print_r($args);
    return("Pippo");
}

function AggiornaCampionato($args) {
    //$args = (int)$args;
    return 10;
}

function AggiornaRisultati($args) {
    $args = (int)$args;
    return $args;
}

function AggiornaCategoria($args) {
    //$args = (int)$args;
    return 10;
}

ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache

$server = new SoapServer("aicscalcio.wsdl");
$server->addFunction("AggiornaCampionati");
$server->addFunction("AggiornaCampionato");
$server->addFunction("AggiornaRisultati");
$server->addFunction("AggiornaCategoria");

try {
    $server->handle();
}
catch (Exception $e) {
    $server->fault('Sender', $e->getMessage());
}
?>

为什么不返回字符串值?
其他功能也没有返回任何值!!
我怎样才能确定PHP函数被召回? 谢谢!

1 个答案:

答案 0 :(得分:0)

解决!
我不能直接返回字符串!
正确的功能是:

function AggiornaCampionati($args) {
return array( "sresult" => $args->nomeCampio,
    "iresult" => $args->id );
}

(与此同时我也添加了一个整数) 与其他功能相同。