问题描述
我正在努力将HTML模板传递到我的VerifyTagItem的Description标签中。这是我正在使用的错误消息:
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 docs之后, 我试过将原始的html文本包装在“
ebaysdk [ERROR]:VerifyAddItem: Class: RequestError,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中指定的最大字符数。我已经尝试过遵循此page,但他们的建议不起作用。这使我相信这不是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正常工作。