【发布时间】:2015-05-22 03:23:32
【问题描述】:
从 Excel VBA,我正在 POST 到一个将 XML 作为参数之一的 API。
除非 XML 中有 & 符号,否则它可以正常工作。
我已将它们转义到 &,但我仍然从 API 收到错误消息,告诉我存在不允许的字符。
我使用的标题如下:
setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
我发布的 XML 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<xml>
<row>
<column id="747">ALROS TRAVEL & HOLIDAY CO.</column>
<column id="748">73318</column>
<column id="749"/>
<column id="750"/>
</row>
</xml>
根据我的测试,似乎是 & 导致了问题。
我已经通过他们的测试工具测试了 XML,它工作正常,所以我认为请求标头是问题。
我已要求 API 开发人员检查他们从我的 POST 中收到的内容,并且它似乎在 & 出现时立即被切断(即使它被转义了)。
我能得出的唯一结论是我使用了错误的请求标头,或者我应该以不同的方式发布 XML。
他们的测试工具是一个使用“multipart/form-data”的 HTML 表单,但我似乎无法从 VBA 使用它,或者我收到“未检测到身份验证信息”消息。
有人知道我做错了什么吗?
谢谢
【问题讨论】:
-
您是否尝试过将节点包装在 CDATA 标记中?
-
尝试建议的解决方案here
-
谢谢大家,信不信由你@dePatinkin 链接页面上的最后一条评论给了我答案。我不得不使用 %26amp%3B
标签: xml excel vba post httprequest