Dee*_*ees 8 php soap soap-client
我在使用自定义soap标头与PHP5一起工作时遇到问题.请有人指导我吗
我需要的是这样的
<SOAP-ENV:Header>
<USER>myusername</USER>
<PASSWORD>mypassword</PASSWORD>
</SOAP-ENV:Header>
Run Code Online (Sandbox Code Playgroud)
我得到的是:
<SOAP-ENV:Header>
<ns2:null>
<USER>myusername</USER>
<PASSWORD>mypassword</PASSWORD>
</ns2:null>
</SOAP-ENV:Header>
Run Code Online (Sandbox Code Playgroud)
我想删除命名空间标记.我用来获得这个的代码是:
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);
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)
致命错误:SoapHeader :: SoapHeader():参数无效.命名空间无效.在第29行的/usr/home/deepesh/SoapCalls/deepesh7.php中
小智 5
我需要类似的东西,并且能够使用XSD_ANYXML SoapVar实现此目的:
$auth = "<username>$username</username>";
$auth .= "<password>$password</password>";
$auth_block = new SoapVar( $auth, XSD_ANYXML, NULL, NULL, NULL, NULL );
$header = new SoapHeader( 'http://schemas.xmlsoap.org/soap/envelope/', 'Header', $auth_block );
$soap_client->__setSoapHeaders( $header );
Run Code Online (Sandbox Code Playgroud)
结果是:
<SOAP-ENV:Header>
<username>12345</username>
<password>12</password>
</SOAP-ENV:Header>
Run Code Online (Sandbox Code Playgroud)
在您的示例中,您仅创建一个 SoapHeader 条目(具有命名空间,但名为“null”)。您想要的结果包含两个单独的标头条目(没有命名空间),因此您可以尝试:
$headers = array();
$headers[] = new SoapHeader(NULL, 'USER', $auth->USER);
$headers[] = new SoapHeader(NULL, 'PASSWORD', $auth->PASSWORD);
Run Code Online (Sandbox Code Playgroud)
然后,您可以将该$headers数组传递给soap 调用(直接传递,或者通过预先传递__setSoapHeaders)。
| 归档时间: |
|
| 查看次数: |
9963 次 |
| 最近记录: |