我的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>
并且不知道如何从标题中读取数据(获取标记值)。我正在使用PHP5中的SoapClient
。
答案 0 :(得分:2)
从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的新类。使用
答案 1 :(得分:1)
根据manual:
$soapclient->__soapCall("soapmethod", array(parameters), null, $input_headers, &$output_headers);
然后,答案 2 :(得分:0)
我是在http://hardforum.com/showthread.php?t=1651481
从JackTheKnife那里得到的 $result = $service->getLastResponse();
$xmlString = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $result);
$xml = simplexml_load_string($xmlString);
$token = $xml->soapHeader[0]->AuthorizationToken[0]->Token;