0

私は最初の 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>

それは空です (戻りメッセージは ok(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関数がリコールされたことを確認するにはどうすればよいですか?
ありがとう!

4

1 に答える 1

0

解決しました!
文字列を直接返すことはできません!
正しい関数は次のとおりです。

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

(その間、整数も追加しました)。
他の機能も同様。

于 2012-12-31T10:41:57.983 に答える