2016-04-28 10 views
0
r = requests.post(
    "http://shop.digiseller.ru/xml/shop_categories.asp", 
    data={'seller\id': 479531, 'category\id': 0} 
) 

r.textrequests.post関数にパラメータを正しく挿入するにはどうすればいいですか?

出力は次のようになります。<?xml version="1.0" encoding="utf-8"?><digiseller.response><retval>-1</retval><retdesc>отсутствует или неверно задан параметр seller/id</retdesc></digiseller.response>(存在しないか、不正なパラメータの販売/ IDのようななめらか)

間違って何をして起こっていますか? digiseller.ruのAPIドキュメントでは、このようにparamateresの名前を "category \ id"、 "seller \ id"としなければならないと言われています。 バックスラッシュの代わりにスラッシュ「/」を使用しようとしましたが、機能しませんでした。ここで

は、APIでの要求の例である:

<digiseller.request> 
    <seller> 
    <id>479531</id> 
    </seller> 
    <category> 
    <id></id> 
    </category> 
    <lang></lang> 
</digiseller.request> 
+0

リンクすることはできますか?また、なぜこの質問に 'r'というタグが付いていますか? –

+0

ここではhttps://my.digiseller.ru/inside/myshop.asp?view=xml ですが、ロシア語なので、Google翻訳の方が使いやすくなっています。返信ありがとうございました – Berman

+0

JSON形式はdata = {'seller':{'id':479531}、 'category':{'id':0}} であるはずですが、どちらも役に立ちません。/ –

答えて

1

あなたはXML要求としてあなたの要求を提出しなければなりません。これを試してみてください:

import requests 

x = '''<digiseller.request> 
    <seller><id>{seller_id}</id></seller> 
    <category><id>{category_id}</id></category> 
    <lang></lang> 
</digiseller.request>''' 

r = requests.post(
    "http://shop.digiseller.ru/xml/shop_categories.asp", 
    data=x.format(seller_id=7, category_id=0), 
    headers={'Content-Type': 'application/xml'}) 

if r.ok: 
    print ('GOOD', r.text) 
else: 
    print ('BAD', r.text) 

結果:あなたはこれらのAPIドキュメントに

('GOOD', u'<?xml version="1.0" encoding="utf-8"?><digiseller.response><retval>0</retval><retdesc></retdesc><categories></categories></digiseller.response>') 
+0

ありがとうございます!出来た。 – Berman

+0

私はhttp://shop.digiseller.ru/xml/shop_products.asp とちょっと違うxml形式を試してみましたが、スムーズに動作しました。 – Berman

+0

誰かが興味があれば、xml形式: http://pastebin.com/KdZAvf8J – Berman

関連する問題