将curl命令转换为Python请求

时间:2016-12-06 01:02:57

标签: python python-requests

我能正常工作的curl命令是 -

.hidestuff{
opacity:0;
pointer-events:none;
}

在Python中,这就是我目前所拥有的 -

curl -X GET -H "Authorization: Basic <base64userpass>" -H "Content-Type: application/json" "http://<host>/bamboo/rest/api/latest/result/<plankey>.json?expand=results.result&os_authType=basic"

使用Python请求时得到的响应是 headers = {'Authorization': 'Basic <base64userpass>', 'Content-Type': 'application/json'} datapoints = {'expand': 'results.result', 'os_authType': 'basic'} url = "http://<host>/bamboo/rest/api/latest/result/<plankey>.json" r = requests.get(url, headers=headers, data=datapoints) ,但是当使用curl时,我会收回预期的数据。

我在这里缺少什么?

感谢。

1 个答案:

答案 0 :(得分:3)

您应该使用请求的auth选项进行基本身份验证。 CURL命令行为您处理的标题更多(除非您使用auth,否则请求将不会处理它们):

>>> from requests.auth import HTTPBasicAuth
>>> requests.get('https://api.github.com/user', auth=HTTPBasicAuth('user', 'pass'))

或者只是使用:

>>> requests.get('https://api.github.com/user', auth=('user', 'pass'))

(更改网址和所有内容)。

另请注意,requests应该获得params=(而不是data=)。