Reputation: 143
r = requests.post(
"http://shop.digiseller.ru/xml/shop_categories.asp",
data={'seller\id': 479531, 'category\id': 0}
)
r.text
the output is: <?xml version="1.0" encoding="utf-8"?><digiseller.response><retval>-1</retval><retdesc>отсутствует или неверно задан параметр seller/id</retdesc></digiseller.response>
( smth like nonexistent or incorrect parameter seller/id )
What is going wrong? In the API docs of digiseller.ru it is said that names of the paramateres must be wriiten in this way: "category\id", "seller\id". I had tried to use slashes '/' instead of backslashes, but it didn't work.
Here is an example of a request in the API:
<digiseller.request>
<seller>
<id>479531</id>
</seller>
<category>
<id></id>
</category>
<lang></lang>
</digiseller.request>
Upvotes: 0
Views: 238
Reputation: 168586
You should submit your request as an XML request. Try this:
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)
Result:
('GOOD', u'<?xml version="1.0" encoding="utf-8"?><digiseller.response><retval>0</retval><retdesc></retdesc><categories></categories></digiseller.response>')
Upvotes: 1