如何使用Python调用Azure DevOps API 6.0-preview.1修改项目头像
问题根因
- 你的核心错误是将读取到的字节列表直接通过
str()转为了普通字符串,转换后的内容包含b''前缀、列表括号、转义字符,服务端无法识别为有效图片字节,所以返回默认占位图 - 官方文档标注的「字符串数组」属于描述误差,该接口实际要求提交的是每个字节对应十进制值组成的整数数组,不需要额外转为字符串格式
- 6.0-preview.1版本的接口实际成功返回码为204,属于文档标注错误,无需纠结状态码和文档描述不一致的问题
可正常运行的代码
import json import requests # 替换为你自己的配置 organization = "你的组织名称" project_id = "目标项目ID" project_picture_path = "本地头像图片的完整路径" # PAT需要具备项目编辑权限 pat = "你的Azure DevOps个人访问令牌" auth = ('', pat) url = f'https://dev.azure.com/{organization}/_apis/projects/{project_id}/avatar?api-version=6.0-preview.1' with open(project_picture_path, "rb") as image: # 直接读取全量二进制内容,转为0-255范围的整数数组 image_array = list(image.read()) payload = json.dumps({"image": image_array}) headers = {'Content-type': 'application/json'} response = requests.put(url, data=payload, auth=auth, headers=headers) print(response.status_code)
注意事项
- 头像图片建议使用正方形,大小不超过1MB,避免服务端压缩变形
- 个人访问令牌需要勾选「项目和团队」的编辑权限,否则会返回403无权限错误
- 提交请求后可能存在1-2分钟的缓存延迟,刷新页面后即可看到更新后的头像
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

