【发布时间】:2018-03-22 07:02:30
【问题描述】:
我需要使用 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 的特定客户端错误并到达服务器。
【问题讨论】:
-
这些都不是有效的 xml 字符串。
-
那么验证器是错误的,或者你遗漏了一些东西。这只是指仅包含
<note>的文档,而不是您当前的编辑。 -
@Event,明白了。感谢您的澄清。 Atlhough,即使在编辑之后,使用当前的 XML,我仍然会遇到同样的错误。 ://