使用python请求向RESTAPI发送数据参数
我试图通过发送使用python请求向RESTAPI发送数据参数,python,curl,python-requests,Python,Curl,Python Requests,我试图通过发送json数据来调用restapi。curl命令非常简单,但我面临的唯一问题是“-data”参数 对于curl,数据按如下方式发送: curl -X POST -H <headers> --data 'params={...}' <url> curl-X POST-H--data'params={…} 我不知道如何使用python请求发送附加了名为'params='的--data参数 另外,在发出GET请求时,还有很多选项必须与curl请求(-O,-J,-
json
数据来调用restapi
。curl命令非常简单,但我面临的唯一问题是“-data”参数
对于curl,数据按如下方式发送:
curl -X POST -H <headers> --data 'params={...}' <url>
curl-X POST-H--data'params={…}
我不知道如何使用python请求发送附加了名为'params='
的--data参数
另外,在发出GET请求时,还有很多选项必须与curl请求(-O,-J,-v,-G,-L)
一起发送
我想知道如何使用python请求提供这些附加参数
谢谢。
curl
是一个非常丰富的库,经过过去几十年的大量开发,它已经有了长足的发展。与curl
相比,python的requests
库还是个婴儿。因此,您不能期望请求中的curl
具有所有功能。您只能在请求中获得curl
的主要功能
现在来问你的问题。如果希望通过变量发送json数据,则基本POST操作(content-type-application/x-www-form-urlencoded
)即可
但是,如果您想将数据作为json对象发布,并且标题内容类型为json,那么您必须使用
headers = {'content-type': 'application/json'}
r = requests.post(url, data=json_string, headers=headers)
在Curl中,param-L表示遵循重定向。您可以使用allow_redirects=True
参数来实现:
r = requests.post(url, data=json_string, headers=headers, allow_redirects=True)
帮助您自己从请求中找到您的需求。您有兴趣在URL中发送请求参数吗?我指的是以下URL的粗体部分:something.com/get?key2=value2&key1=value1Hi Sabuj,感谢您的评论。虽然这对我帮助不大。但是我最终在os.system()函数中执行了curl命令。使用它,我还可以查看curl命令的响应。python中有一个子进程库,建议使用它来代替os.system()。但我还没有弄清楚如何使用子流程库访问响应头(python请求具有响应对象的headers属性,可以用于相同的目的)。无论如何,谢谢你的回复。它提供了信息。干杯小编辑那里。我没有使用os.system()查看curl命令中的响应头。我只得到了回应。我有点困惑,因为我在做多个项目。一个使用python请求,另一个使用os.system()。谢谢
r = requests.post(url, data=json_string, headers=headers, allow_redirects=True)