Google Checkout / GAE: urlfetch: ошибка синтаксического анализатора XML.содержание не доступно в прологе - PullRequest
0 голосов
/ 03 сентября 2011

Обновлен вопрос с XML.Я проверил это с валидатором ранее, и он прошел.Может ли проблема быть чем-то другим?Еще раз спасибо.


Не могли бы вы, пожалуйста, дайте мне знать, что не так со следующим кодом?Я использую его для отправки запроса API межсерверной проверки .

Я получаю сообщение об ошибке: " Ошибка синтаксического анализа XML; сообщение от анализатора:Содержание не разрешено в прологе '.

Я перепробовал все перестановки и комбинации, а также искал в Интернете, но не смог найти потенциальных клиентов. Ваша оперативная помощь будет высоко оценена, как и язастрял.

Спасибо. .Ashish PS: значение base64encoded ниже, используемое для аутентификации, изменено ниже для безопасности и, следовательно, является просто случайным значением.

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 голосов
/ 04 сентября 2011

Ошибка «Содержимое недопустимо в прологе» - это ошибка, сгенерированная синтаксическим анализатором XML, когда символы располагаются до объявления типа документа XML или в объявлении XML появляются нестандартные символы (допустимые в HTML).Это также может быть вызвано указанием кодировки заглавными буквами (например, UTF-8 неверен).

Попробуйте изменить кодировку на «utf-8», чтобы проверить, исправляет ли она это.

Ссылка ниже имеет более интересные случаи, когда эта ошибка появляется:

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

0 голосов
/ 03 сентября 2011

Сообщение об ошибке, которое вы видите, является сообщением об ошибке очень общего назначения о том, что то, что вы дали парсеру XML, не является правильно сформированным XML.Это может означать, что файл пуст, или начинается с нераспознанной метки порядка байтов, или начинается с чего-то, кроме "<". </p>

...