使用PHP soap函数的自定义标题
发布时间:2020-12-13 18:05:52 所属栏目:PHP教程 来源:网络整理
导读:我在使用自定义soap标头与 PHP5一起工作时遇到问题.请有人指导我. 我需要的是这样的 SOAP-ENV:Header USERmyusername/USER PASSWORDmypassword/PASSWORD/SOAP-ENV:Header 我得到的是: SOAP-ENV:Header ns2:null USERmyusername/USER PASSWORDmypassword/PAS
我在使用自定义soap标头与
PHP5一起工作时遇到问题.请有人指导我.
我需要的是这样的 <SOAP-ENV:Header> <USER>myusername</USER> <PASSWORD>mypassword</PASSWORD> </SOAP-ENV:Header> 我得到的是: <SOAP-ENV:Header> <ns2:null> <USER>myusername</USER> <PASSWORD>mypassword</PASSWORD> </ns2:null> </SOAP-ENV:Header> 我想删除命名空间标记. class Authstuff { public $USER; public $PASSWORD; public function __construct($user,$pass) { $this->USER = $user; $this->PASSWORD = $pass; } } $auth = new Authstuff('myusername','mypassword'); $param = array('Authstuff' => $auth); $authvalues = new SoapVar($auth,SOAP_ENC_OBJECT); $header = new SoapHeader('http://soapinterop.org/echoheader/',"null",$authvalues); Null似乎没有传递..使用’null’我仍然得到名称空间,如第二个例子..如何排除这个NS …感谢你的帮助提前.. $headers = array(); $headers[] = new SoapHeader(null,'USER',$username); $headers[] = new SoapHeader(null,'PASSWORD',$password); $client->__setSoapHeaders($headers); try { $result = $client->getAvailableLicensedDNCount('ASX01'); print_r($result);
我需要类似的东西,并能够使用XSD_ANYXML SoapVar来实现这一目标:
$auth = "<username>$username</username>"; $auth .= "<password>$password</password>"; $auth_block = new SoapVar( $auth,XSD_ANYXML,NULL,NULL ); $header = new SoapHeader( 'http://schemas.xmlsoap.org/soap/envelope/','Header',$auth_block ); $soap_client->__setSoapHeaders( $header ); 这导致: <SOAP-ENV:Header> <username>12345</username> <password>12</password> </SOAP-ENV:Header> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |