使用 curl 发送 XML 文件会导致:
Invalid XML character (Unicode : 0x<integer>)
尝试解决问题
根据这个答案如果 XML 版本更改为 1.1,该问题将得到解决。
尽管 XML 文件中的版本已更新:
<?xml version="1.1" encoding="utf-8" standalone="yes"?>
curl 似乎一直以 1.0 版本发送 XML。
第二次尝试解决问题
另一种尝试是使用 curl 更改发布时使用的标头,如下所示:
curl -X POST -H "Content-Type: text/xml; charset=utf-8; version=1.1"
Curl 似乎忽略了这一点,因为输出表明使用了 xml 版本 1.0:
* Closing connection #0
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope
第三次尝试解决问题
@Ƭᴇcʜιᴇ007 建议创建一个小型 XML 文件:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body>
<note>
<to>Test</to>
</note>
</soap:Body>
</soap:Envelope>
验证语法并随后发布:
An invalid XML character (Unicode : 0x<integer>) was found
第四次尝试解决问题
根据这个答案0x<integer_greater_than_20>
由于大于 0x20,因此该问题不应该发生。
第五次尝试解决问题
代表什么0x<integer_greater_than_20>
?根据这张桌子它代表了似乎可以接受的拉丁字符。
第六次尝试解决问题
也许 XML 文件无效?不,根据 Notepad++ 的“立即检查 XML 语法”选项,XML 是有效的。