【问题标题】:Visual Studio Team Services REST API with curl带有 curl 的 Visual Studio Team Services REST API
【发布时间】:2018-05-25 17:21:38
【问题描述】:

我可以使用 Google 的 DHC 扩展或在代码中访问 Team Services API,但无法使用 curl。

到目前为止我已经尝试过:

curl -H "授权:承载 MY_ACCESS_TOKEN" https://MYINSTANCE.VisualStudio.com/DefaultCollection/_apis/projects?api-version=2.0

我不断收到“对象移动到....”的结果。

我该如何解决这个问题?

【问题讨论】:

标签: curl tfs libcurl


【解决方案1】:

按照这里的精美手册进行操作:

https://docs.microsoft.com/en-us/rest/api/vsts/?view=vsts-rest-4.1

您可以按如下方式格式化您的 curl 请求(以下示例用于检索您的 VSTS 构建):

curl -u username:PATtoekn -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET https://your-account.visualstudio.com/your-project/_apis/build/builds?api-version=4.1 -k

祝你好运!

【讨论】:

  • 这为我完成了工作。谢谢。
【解决方案2】:

我之前遇到过这个问题,并通过将“Bearer”更改为“Basic”来解决问题。

curl -H "Authorization: Basic <TOKEN>" https://xxxxxx.VisualStudio.com/DefaultCollection/_apis/projects?api-version=2.0

更新: 目前,VSO Rest API 仅支持基本身份验证和使用 OAuth 2.0 授权访问。您可以使用 Basic Auth 或使用 curl 从 VSO 获取 OAuth2.0 访问令牌。详情请参阅此链接:Authorize access to REST APIs with OAuth 2.0

我刚刚尝试使用个人访问令牌进行 DHC,但收到以下消息:“很抱歉,Chrome API 不允许获取重定向的响应正文。”因此,您可能需要清除浏览器的 cookie 和缓存,然后尝试查看 bearer 是否可以与 DHC 中的 VSO Rest API 一起使用。

【讨论】:

  • 我刚刚使用 Basic 进行了测试,但仍然得到相同的“对象已移动”结果。
  • @mkazanova 您如何生成访问令牌?我通过在 DHC 中单击“设置授权”来获取它,然后输入我的备用身份验证凭据并选择“基本”类型。
  • 在 DHC 中它甚至可以与 Bearer 一起使用,它不适用于 curl 命令行。通过添加新的个人访问令牌,在我的个人资料的安全选项卡下创建了令牌。
  • @mkazanova 我以为您使用的是基本身份验证生成的令牌。很抱歉造成误解。由于cmets的限制,我在回答中添加了我详细的cmets,详情请参考。
猜你喜欢
  • 2016-10-06
  • 1970-01-01
  • 2015-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多