Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python请求向RESTAPI发送数据参数_Python_Curl_Python Requests - Fatal编程技术网

使用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)