PHP NuSoap正确的发送标头的方式

时间:2014-01-27 13:39:48

标签: php nusoap

我一直困在HTTP 400" Bad Request"尝试连接API一段时间后出现问题。

我感觉它与标题有关,但我不太确定。

我的查询是关于SOAP请求的输出以及我是否正确设置了标题。

所以我必须设置标题的代码是

$proxy->setHeaders('<soap:Header><AuthenticationSoapHeader xmlns="https://www.xxxxx.com/ASPAPI"><Token>xxxxx-xxxxx-xxxx</Token></AuthenticationSoapHeader></soap:Header>');

然后我调用API函数并在设置标题后直接传递XML字符串,如下所示:

$result = $proxy->call('ValidateService', array('serviceXML' => $xml));

但是,打印$proxy->request时的输出是这样的:

[TOKEN VALUE FROM HEADER HERE][CONTENTS OF XML STRING HERE]

因此request字符串基本上打印出标题中<token>标记内的内容,后面紧跟XML字符串。

是否在XML字符串旁边的请求中打印出<token>值?我有一种感觉,我可能会错误地设置标题。

1 个答案:

答案 0 :(得分:2)

问题在于标题。

<soap:Header>开场&amp;结束标记导致HTTP Error 400 "Bad Request"

$proxy->setHeaders('<soap:Header><AuthenticationSoapHeader xmlns="https://www.xxxxx.com/aspapi"><Token>xxxxx</Token></AuthenticationSoapHeader></soap:Header>');

应该是

$proxy->setHeaders('<AuthenticationSoapHeader xmlns="https://www.xxxxx.com/aspapi"><Token>xxxxx</Token></AuthenticationSoapHeader>');