我有 SOAP 响应,如下所示
<soap:Envelope>
<soap:Header>
<AuthorizationToken soap:mustUnderstand="1">
<Token>5c31cca8-8303-4d01-a564-a99569a0963a</Token>
</AuthorizationToken>
</soap:Header>
<soap:Body>
<AuthenticateResponse>
<AuthenticateResult>http://www.avectra.com/OnDemand/2005/</AuthenticateResult>
</AuthenticateResponse>
</soap:Body>
</soap:Envelope>
并且不知道如何从 header 读取数据(获取 token 值)。我正在使用 PHP5 中的 SoapClient
。
最佳答案
来自http://drupalcode.org/project/netforum.git/blob/refs/heads/master:/xwebSecureOD.class.inc看起来这应该可行:
$soapclient->__soapCall($fname, $arguments, null, $this->getAuthHeaders(), $responseHeaders);
$responseHeaders['AuthorizationToken']->Token;
该链接有一个类,它扩展了 PHP 的 SOAP 对象,并执行一些缓存和 drupal 特定的操作,但您应该能够删除这些部分,并留下一个新类,该类透明地处理 netFORUM 使用的滑动授权 token 。
关于php - 如何在客户端从 SOAP header 读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124861/