如何在python中的POST请求中发送urlencoded参数
问题描述:
我试图将我的生产就绪代码部署到Heroku中进行测试。不幸的是,它没有获取JSON数据,所以我们转换成了x-www-form-urlencoded。如何在python中的POST请求中发送urlencoded参数
params = urllib.parse.quote_plus(json.dumps({
'grant_type': 'X',
'username': 'Y',
'password': 'Z'
}))
r = requests.post(URL, data=params)
print(params)
它显示此行错误,因为我猜data=params
格式不正确。
是否有任何方式将urlencoded参数发布到API?
答
你不需要明确地编码它,只需传递一个字典。
>>> r = requests.post(URL, data = {'key':'value'})
通常情况下,你要发送某种形式的编码数据 - 很像一个HTML 形式。要做到这一点,只需将字典传递给数据参数即可。你 字典数据将自动表单编码时请求 由
只需在一个字典来'data'传递,默认情况下请求将其发送的X WWW的形式,进行了urlencoded的照顾。 –