やあ、あなたが愛したすべての人々、私はあなたのために別のものを持っています. 私はdjango、リクエスト、およびGoogleチェックアウトを使用しています。私はxmlをGoogleチェックアウト権に送信するところです。すべてが順調です。requests ライブラリを使用して、POST に入れたくないコンテンツを取得しています。説明させてください。Google は正しい XML ファイルを必要としているので、スキーマからデータ構造を作成するために甘いライブラリを使用しています。だから私のXMLは正しいです。ただし、リクエストはこれをGoogleに送信します。
--178.32.28.118.55290.2265475.1333156904.984.1
Content-Disposition: form-data; name="this.xml"; filename="../xml/this.xml"
Content-Type: application/xml
<?xml version="1.0" ?>
<checkout-shopping-cart xmlns='http://checkout.google.com/schema/2'>
<shopping-cart>
<item>
<digital-content>
<url>/site_media/digitalGoods/Resume.html.pdf</url>
<description>None Yet</description>
<display-disposition>OPTIMISTIC</display-disposition>
</digital-content>
<item-name>Fire Safety Part 1</item-name>
<item-description><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.
</item-description>
<unit-price currency="USD">1.500000e+01</unit-price>
<quantity>1</quantity>
<merchant-item-id>1</merchant-item-id>
</item>
</shopping-cart>
<checkout-flow-support>
<merchant-checkout-flow-support/>
</checkout-flow-support>
</checkout-shopping-cart>
--178.32.28.118.55290.2265475.1333156904.984.1--
私が思う問題は、リクエストがそれらの番号とそれらのヘッダーを xml の上に置いていることです。それらは 1 つのドキュメントのようです。また、xml の直後にこれらの番号を書き込んでいます。Google統合コンソールから取得したエラーは.
Error parsing XML; message from parser is: Content is not allowed in prolog.
私の質問は次のとおりです。これをオフにする方法はありますか、リクエストコードを自分でマングルする必要がありますか、それとも何ですか。リクエストで投稿する方法は次のとおりです
#....other code and vars above
sendfile = {'this.xml':open('../xml/this.xml', 'r')}#the file
headers={'Authorization':("Basic %s" % auth),#google specific headers
'Content-Type':'application/xml; charset=UTF-8',
'Accept':'application/xml; charset=UTF-8'}
#send POST
r = requests.post(diagnose_turl, files=sendfile,headers=headers, verify=False)