2013-12-13 135 views
0

我做出非常简单的测试请求。还有就是我的文档:简单的PHP肥皂请求

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://localhost/webshop"> 
    <soap:Header/> 
    <soap:Body> 
     <web:TestRequest/> 
    </soap:Body> 
</soap:Envelope> 

下面是我的要求:

$uri = '...'; 
$login = '...'; 
$pass = '...'; 
try{ 
$client = new SoapClient($uri, Array('login' => $login, 'password' => $pass)); 
}catch(SoapFault $exception){ 
$errors[] = 'Error: '.$exception; 
} 
//print_r($errors); //empty 


if($client){ 
    $param = array(); 
    //var_dump($client); 
    //var_dump($client->__getFunctions()); 
    $result = $client->__doRequest('TestRequest', $param); 
    //$result = $client->TestRequest(); 
    var_dump($result); //return NULL 
    echo "<br>"; 
    var_dump("REQUEST=", $client->__getLastRequest()); //return string(7) "REQUEST" NULL 
    var_dump("RESPONSE=", $client->__getLastResponse());//return string(8) "RESPONSE" NULL 
} 

它是确定它的返回NULL?或者我犯了错误!?

谢谢!

回答

0

您在__doRequest()上缺少动作参数。请参阅here

应..

$result = $client->__doRequest('web:TestRequest', $param, $action, $version); 
                  ----^--- ----^---- 
+0

对不起?但我真的不明白。我需要添加到操作参数。 – glazsasha

+0

只需将它传递为'$ result = $ client - > __ doRequest('web:TestRequest',“”,“”,“”,0);' –