PHP肥皂与人群wsdl

时间:2014-09-29 06:58:48

标签: php soap

我正在尝试使用我的自定义php应用程序中的人群编写sso登录代码。我试图用SOAP做到这一点。我现在处于早期阶段,正在阅读如何将php soap与wsdl连接的文档。但我似乎陷入了很深的困境,因为我不知道接下来应该做些什么。

<?php
 class test {
        function authenticateApplication()
        {
            $client = new SoapClient("http://localhost:8095/crowd/services/SecurityServer?wsdl");
            $param = array('in0' => array('credential' => 'password','name' => 'app'));
            $resp=$client->authenticateApplication($param);
            $token = $resp->out->token;
            print_r($resp);
        }
    }
     $t= new test;
     $t->authenticateApplication();

我不知道这段代码有什么问题。我在网上提到它似乎是正确的,但是当我想运行这个程序时,我收到了这个错误

Fatal error: Uncaught SoapFault exception: [soap:Client] The validated object is null in /var/www/html/badebade/soaptest.php:7 Stack trace: #0 /var/www/html/badebade/soaptest.php(7): SoapClient->__call('authenticateApp...', Array) #1 /var/www/html/badebade/soaptest.php(7): SoapClient->authenticateApplication(Array) #2 /var/www/html/badebade/soaptest.php(13): test->authenticateApplication() #3 {main} thrown in /var/www/html/badebade/soaptest.php on line 7

由于此程序在crowd wsdl中验证应用程序并返回令牌,因此将非常感谢一点帮助。有人可以帮助我实现它。

1 个答案:

答案 0 :(得分:0)

function Find($request) {
try {
    $soapClient = new SoapClient('wsdl.wsdl', array('trace' => 1));
    $results = $soapClient->authenticateApplication($request);
    return $results;
}
catch(SoapFault $ex) {
    print $ex->getMessage();
    echo '<HR>';
    print $ex->getTraceAsString();
    echo '<HR>';
    echo $ex->getLine();

}

}

$ results = Find($ params);