转换curl命令到Python请求
问题描述:
curl命令,我有正常工作是 -转换curl命令到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)
我得到的回应当使用Python请求是<Response [403]>
,但是当使用curl时,我找回了预期的数据。
我在这里错过了什么?
感谢。
答
您应该使用请求的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'))
(更改URL和所有)。
另请注意,requests
应该得到params=
(而不是data=
)。
你需要'params ='而不是'data =' – furas