python - 将 HTML 模板代码传递给 VerifyAddItem/AddItem 中的描述 - 错误代码 20170
问题描述
我正在努力将 HTML 模板传递到 VerifyAddItem 的描述标签中。这是我正在使用的错误消息:
ebaysdk [ERROR]:VerifyAddItem: Class: RequestError, Severity: Error, Code: 20170, Schema XML request error. Schema XML request error: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize..
关于如何实现这一点的文档很少。按照官方的 AddItem文档,我尝试将原始 html 文本包装在“<![CDATA[”+description_html_string +“]]”中。这样做会给我一个不同的错误:
ebaysdk [ERROR]:VerifyAddItem: Class: RequestError, Severity: Error, Code: 5, XML Parse error. XML Error Text: "; nestedexception is: org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.".
我正在使用 JSON 为 API 调用构建我的有效负载,所以我什至不确定是否需要执行上述操作^。我知道我的有效载荷工作正常。只需将我的描述替换为如下所示的纯文本即可,即 VerifyAddItem API 调用成功:
"Item"{
...
"Description" : "boring non html template description :("
...
}
使用更简单的 html 片段设置 Description 标记,如下所示:
"<p> asdfasdfasd asdfasdf </p>"
也会产生相同的错误。
我知道我的 python 代码返回有效的 html,因为我已经在浏览器上运行了 HTML,它看起来很棒。此外,它不超过docs中指定的最大字符数。我已经尝试关注此页面,但他们的建议没有奏效。这让我相信这不是我的 HTML 的问题,而是我如何与 API 交互的问题。
我是 XML 的初学者。有没有人遇到过这些问题并可以提供帮助?关于我所遇到的错误,我至少想要更多的上下文。返回的错误对我来说不是很清楚。如果可能的话,我希望答案更适合 eBay SDK/Trading API,我的有效负载中是否缺少标签或其他什么?
解决方案
发现了问题,我的 CDATA 包装器中有错字,我错过了关闭的胡萝卜“>”。在构建有效负载时,我将我的描述设置为:
"Item"{
...
"Description" : "<![CDATA[[<p>Cool item description</p>]]"
...
}
什么时候应该是:
"Item"{
...
"Description" : "<![CDATA[[<p>Cool item description</p>]]>"
...
}
通过该修复,我的 VerifyAddItem 工作正常。
推荐阅读
- datetime - CDateTimeCtrl 选择器边框
- grpc - 云任务创建:错误:3 INVALID_ARGUMENT:请求包含无效参数
- macos - 如何在 MacBook 上的 Hyperkit 上连接 Minikube
- javascript - Angular 9 - 如何根据路线动态显示json的一部分
- c# - 在 asp.net mvc 中使用 C# 解压缩正文请求,已使用 pako 库 JS 压缩
- c# - 在 WPF 中动态创建多个 DataGrid
- azure - 在 Azure APIM 响应中更改 Set-Cookie 路径
- powershell - 使用 Powershell 脚本来识别和替换除 ^ 以外的分隔符时遇到问题
- php - PHP 从 500k+ SQL 行生成 CSV
- java - 如何在 Android/Java 中将字符串和数字后缀连接在一起?