使用Curl在Azure DevOps创建Bug时遇Object moved错误求助
问题排查与解决方法
核心原因分析
出现"Object moved"重定向错误,主要是认证方式错误或CMD环境下请求格式不兼容导致,以下是具体修复方案:
1. 修正PAT认证格式
Azure DevOps的PAT(个人访问令牌)需使用Basic认证,而非Bearer:
- 构造字符串:
":" + 你的PAT值(比如":"cacc) - 将该字符串做Base64编码
- 替换Authorization头为:
Authorization: Basic <编码后的字符串>
示例修正后的头信息:
-H "Authorization: Basic YzFhY2M="
2. 修复CMD中的JSON引号问题
CMD不支持单引号包裹JSON内容,需转义内部双引号:
修正后的--data-binary参数:
--data-binary "[{\"op\":\"add\",\"path\":\"/fields/System.Title\",\"value\":\"Test bug by salman\"}]"
3. 完整修正后的curl命令
curl "https://dev.azure.com/online/NewRelic/_apis/wit/workitems/$bug?api-version=7.1-preview.3" ^ -H "Authorization: Basic <你的Base64编码后的PAT>" ^ -H "Content-Type: application/json-patch+json" ^ --data-binary "[{\"op\":\"add\",\"path\":\"/fields/System.Title\",\"value\":\"Test bug by salman\"}]"
(CMD中用^实现换行,方便阅读)
4. 额外检查项
- 确认PAT权限:需勾选Work Items读写权限,且作用域覆盖目标项目
- 验证URL正确性:确保
online是组织名、NewRelic是项目名,与实际一致 - 检查必填字段:部分项目要求
System.AreaPath或System.IterationPath为必填,若报错需补充对应add操作
内容的提问来源于stack exchange,提问作者Salman
相关产品推荐
相关产品推荐

