将HTML模板代码传递给VerifyAddItem / AddItem中的描述-错误代码20170

问题描述

我正在努力将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正常工作。