如何将参数插入请求.post功能正常?

2024-10-03 19:23:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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

r.文本

输出是:<?xml version="1.0" encoding="utf-8"?><digiseller.response><retval>-1</retval><retdesc>отсутствует или неверно задан параметр seller/id</retdesc></digiseller.response>(smth-like不存在或不正确的参数seller/id)

出什么问题了? 在API文档中digiseller.ru据说参数的名字必须这样写:“category\id”,“seller\id”。 我试着用斜杠“/”代替反斜杠,但没用。在

下面是API中的请求示例:

^{pr2}$

Tags: apiid参数responseruxmlshoppost
1条回答
网友
1楼 · 发布于 2024-10-03 19:23:18

您应该以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)

结果:

^{pr2}$

相关问题 更多 >