将cURL headers命令转换为python-requests

时间:2016-09-30 02:22:26

标签: python curl python-requests

我需要将包含令牌的POST传递给网站以获取授权密钥,我已经使用cURL成功完成了此语句:

curl -D - --request POST https://login.website.com/g/aaa/authorize --data-urlencode token=[TOKEN]

但是,使用Python请求模块似乎无法获得相同的结果:

auth_token = requests.post('https://login.website.com/g/aaa/authorize', data=token)

auth_token.text只是给了我'Unauthorized'

我已经尝试将数据kawrg传递为:

  • 直JSON
  • 一个字符串
  • token=添加到字符串的开头
  • 使用params代替数据并将其传递给JSON(这会让我unexpected argument: {"token" : "value....."}

在这种情况下,-D--data-urlencode(而不仅仅是--data)的重要性是什么?我应该尝试将标头作为参数转储到{{1 }}?

ЕDIT: 在cURL输出中,也会在任何json启动之前打印auth_key:

requests.post()

1 个答案:

答案 0 :(得分:0)

找到答案,requests.json()需要使用而不是json.dumps(data),后者格式不正确,所以这段代码很好:

s.token = requests.post(url, data=data)
s.recieved = s.token.json()
t = requests.post(url, data=s.recieved)