我一直困在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>
值?我有一种感觉,我可能会错误地设置标题。
答案 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>');