Azure DevOps REST API在使用Python请求时返回HTTP状态203
关于PythonAzure DevOps REST API在使用Python请求时返回HTTP状态203,python,azure,azure-devops,python-requests,Python,Azure,Azure Devops,Python Requests,关于Python请求尝试向Azure DevOps REST API进行身份验证并接收HTTP状态203,非权威信息。当查看文本响应时,它只是登录页面的HTML,而不是真正让我登录。我使用了Authorization:Basic,但它似乎不起作用。下面是我的代码示例: 使用Python和请求与Azure DevOps REST API交互 """ 导入base64 将pprint导入为pp 导入请求 以open('ado_pat.txt','r')作为文件: 个人身份验证令牌=file.read
请求
尝试向Azure DevOps REST API进行身份验证并接收HTTP状态203,非权威信息。当查看文本响应时,它只是登录页面的HTML,而不是真正让我登录。我使用了Authorization:Basic
,但它似乎不起作用。下面是我的代码示例:
使用Python和请求与Azure DevOps REST API交互
"""
导入base64
将pprint导入为pp
导入请求
以open('ado_pat.txt','r')作为文件:
个人身份验证令牌=file.read().replace('\n','')
PAT_BASE_64=base64.b64编码(
b'{PERSONAL_AUTHENTICATION_TOKEN}')。解码('ascii')
集合='COLLECTION\u name'
组织机构_URL=f'https://dev.azure.com/{COLLECTION}'
资源\路径='/\ api/项目?api版本=5.1'
标题={
“授权”:f'Basic{PAT_BASE_64},
“接受”:“应用程序/json”
}
尝试:
ADO_RESPONSE=requests.get(
组织\ URL+资源\路径,标题=标题)
pp.pprint(ADO_响应)
pp.pprint(ADO_RESPONSE.text)
ADO_响应。为_状态()引发_
除了requests.exceptions.HTTPError作为错误:
pp.pprint(err)
这是我得到的回应:
<Response [203]>
(''\r\n'
,我能够让上面的代码正常工作。这是工作代码的最终结果
使用Python和请求与Azure DevOps REST API交互
"""
导入base64
导入json
将pprint导入为pp
导入请求
以open('ado_pat.txt','r')作为文件:
个人身份验证令牌=file.read().replace('\n','')
USERNAME=“”
USER\u PASS=USERNAME+“:”+个人身份验证\u令牌
B64USERPASS=base64.b64encode(USER_PASS.encode()).decode()
集合='COLLECTION\u name'
组织机构_URL=f'https://dev.azure.com/{COLLECTION}'
资源\路径='/\ api/securitynamespaces?api版本=5.1'
标题={
“授权”:“基本%s”%B64USERPASS
}
尝试:
ADO_RESPONSE=requests.get(
组织\ URL+资源\路径,标题=标题)
pp.pprint(ADO_响应)
pp.pprint(ADO_RESPONSE.text)
ADO_响应。为_状态()引发_
除了requests.exceptions.HTTPError作为错误:
pp.pprint(err)
以open('output.json','w')作为文件:
file.write(json.dumps(ADO_RESPONSE.json(),indent=4))
API文档似乎没有指定如何正确编码PAT,需要重新编写。这是否回答了您的问题?我将把代码更新到工作版本。我真正得到的是,M$示例实际上不起作用,也不是很好。感谢您在这里分享您的解决方案,您可以接受它作为答案,这样它可以帮助其他社区成员解决同样的问题,我们可以归档此线程,谢谢。已接受。我以前看过,但我需要等待更长的时间。