使用curl发送XML文件会导致:
Invalid XML character (Unicode : 0x<integer>)
尝试解决问题
根据这个SO答案,如果XML版本更改为1.1,问题将得到解决。
虽然已更新驻留在XML文件中的版本:
<?xml version="1.1" encoding="utf-8" standalone="yes"?>
curl似乎继续将XML作为1.0版发送。
第二次尝试解决问题
另一种尝试是更改使用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是有效的。
0x61是字母“a”,所以它在所有版本中都有效,所以是XML。我想你可能会因为XML版本的改变而咆哮错误的树。您是否确认XML不仅无效(错误/不完整标记)?如果您创建一个包含所需内容的新XML,它会上传好吗?
—
Ƭᴇcʜιᴇ0072015年
如果Notepad ++(也)告诉您XML无效,那么这很可能是您的问题,您的XML无效。修复它以使其成为有效的XML并再试一次。
—
Ƭᴇcʜιᴇ0072015年
@Ƭᴇcʜιᴇ007抱歉。我弄错了。Notepad ++表示它是有效的。
—
2015年
听起来不错。让我们知道您的结果(将操作和结果编辑到您现有的问题中)。
—
Ƭᴇcʜιᴇ0072015年