日期:2014-05-16  浏览次数:20529 次

php中,如何通过soap传递两个参数,(ms-security下)

$xml = '
            <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <wsse:UsernameToken>
            <wsse:Username>admin</wsse:Username>
            <wsse:Password>PasswordText</wsse:Password>
            </wsse:UsernameToken>
            </wsse:Security>';

        $header = new SoapHeader('http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd', 'CallbackHandler', new SoapVar($xml, XSD_ANYXML), TRUE);

        $this->client = new SoapClient($wsdl);
        $this->client->__setSoapHeaders(array($header));

        $userInfo = turnObjectToArray($this->client->__call('checkUser', array('username' => array('username' => 'username', 'password' => 'password'))));




一运行上述代码,就提示出错

SoapFault exception: [soap:Server] Fault occurred while processing. in 


后来连调时,对方看了下log,显示就把username传过去了,password没传过去


传递一个参数时对方是可以接收到的

$info = turnObjectToArray($this->client->__call('getClasses', array('gradeId' => array('gradeId' => $data['id']))));


怎么传递两个参数啊???
------解决方案--------------------
注意大小写 !