我需要向Guzzle发送一个帖子请求,用于我正在处理的项目,并且不断收到400 Bad request错误消息'无效的XML数据'。就设置而言,我尝试了很多不同的组合,并且在所有情况下都会收到相同的错误消息。
有没有其他人遇到过这个问题?任何想法为什么会这样?我提前感谢任何帮助。
$xml = $this->getXml();
$client = new GuzzleHttp\Client();
try {
$credentials = base64_encode('username:pass');
$res = $client->post('https://www.example.com',['headers' => ['Content-Type' => 'text/xml; charset=UTF8', 'Authorization' => 'Basic '.$credentials], 'body' => $xml]);
} catch (\GuzzleHttp\Exception\ClientException $e) {
dd($e->getResponse()->getBody()->getContents());
}
对于$ xml值,我尝试了以下内容:
$xml = '<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetCustomerInfo xmlns="http://tempUri.org/">
<CustomerID>1</CustomerID>
<OutputParam />
</GetCustomerInfo>
</soap:Body>
</soap:Envelope>';
我目前的主要目标是简单地解决此无效XML的特定客户端错误并到达服务器。
答案 0 :(得分:0)
XML看起来很好,所以代码应该可行。你在回复中有更多细节吗?也许放在XML或其他东西。
只是旁注:您可以使用Authentication
选项,而不是手动设置{{1}}标题。