Google Checkout / GAE:urlfetch:XML解析器错误。序言中不能有内容

时间:2011-09-03 07:48:39

标签: xml google-app-engine google-checkout

使用XML更新了问题。我之前用验证器检查了它并且它通过了。问题可能是其他问题。再次感谢。


您能告诉我以下代码有什么问题吗?我用它来提交服务器到服务器检出API请求

我一直收到错误:“ 解析XML时出错;来自解析器的消息是:prolog中不允许内容

我已尝试过所有排列和组合,并在网上搜索但无法获得任何线索。当我被困住时,我们将非常感谢您的提示帮助。

谢谢。 .Ashish PS:以下修改了用于身份验证的base64编码值,以便安全性,因此只是一个随机值。

XML = "..."        
form_fields = {'XML': XML}
form_data = urllib.urlencode(form_fields)
result = urlfetch.fetch( url='https://sandbox.google.com/checkout/api/checkout/v2/merchantCheckout/Merchant/MERCHANT_ID',       payload= form_data, 
  method=urlfetch.POST,
  headers={"Authorization": "Basic Kfgoijkef3fdgikneijerfererererwetfni43rfeferr=", 
                           "Content-Type": "application/x-www-form-urlencoded", 
                           "Accept": "application/xml;charset=UTF-8"
           }                                         
)


     XML = "<?xml version='1.0' encoding='UTF-8'?> \
                    <checkout-shopping-cart xmlns='http://checkout.google.com/schema/2'> \
                      <shopping-cart> \
                      <items> \
                          <item> \
                            <item-name>HelloWorld 2GB MP3 Player</item-name> \
                            <item-description>HelloWorld, the simple MP3 player</item-description> \
                            <unit-price currency='USD'>159.99</unit-price> \
                            <quantity>1</quantity> \
                          </item> \
                        </items> \
                      </shopping-cart> \
                      <checkout-flow-support> \
                        <merchant-checkout-flow-support> \
                          <shipping-methods> \
                            <flat-rate-shipping name='SuperShip Ground'> \
                              <price currency='USD'>9.99</price> \
                            </flat-rate-shipping> \
                          </shipping-methods> \
                        </merchant-checkout-flow-support> \
                      </checkout-flow-support> \
                    </checkout-shopping-cart>"

2 个答案:

答案 0 :(得分:0)

您看到的错误消息是一条非常通用的错误消息,指出您为XML解析器提供的内容不是格式良好的XML。这可能意味着该文件为空,或以无法识别的字节顺序标记开头,或以“&lt;”以外的其他内容开头。

答案 1 :(得分:0)

“prolog中不允许内容”错误是XML解析器在XML文档类型声明之前定位时出现错误,或者在XML声明中出现非标准字符(在HTML中有效)。它也可能是由大写字母指定编码引起的(例如UTF-8不正确)。

尝试将编码更改为“utf-8”以查看是否修复了它。

当出现此错误时,下面的链接会有更多有趣的案例:

http://www.judahfrangipane.com/blog/2006/12/13/content-is-not-allowed-in-prolog/