连接到我的Visual Studio在线API返回HTTP 302
Connecting to my Visual Studio Online API returns HTTP 302
我试图通过Node连接到我的VSTS构建2.0 api以创建一个新的构建定义。我得到HTTP 302,这是一个重定向。我不确定为什么会发生这种情况,我能够通过SOAP UI提交相同的请求,使用相同的URL,没有任何问题。下面是代码片段:
var Client = require('node-rest-client').Client;
var client = new Client();
var accessToken = 'MY ACCESS TOKEN';
var args = {
data: JSON.stringify(configJSON),
headers: {
"Content-Type": "application/json",
"Accept": "application/json"}
,auth: {
'bearer': accessToken
}
};
client.post("https://firstname.lastname.visualstudio.com/SampleApp/_apis/build/definitions?api-version=2.0", args, function (data, response) {
console.log(response.statusCode);
}).on('error', function (err) {
console.log('something went wrong on the request', err);
});
原因是身份验证失败,所以它重定向到登录页面,这就是为什么您得到302响应代码。
我修改代码,将Authorization添加到header中,并删除auth参数,之后它就可以正常工作了。
var args = {
data: JSON.stringify(configJSON),
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer " + accessToken
}
//, auth: {
// "Bearer":accessToken
//}
};
另一方面,我建议你可以通过vsts-node-api或PowerShell创建构建定义。
对于VSTS-node-api,在BuildApi (xxx)中有createDefinition函数,有一个关于如何使用它的示例。
对于PowerShell,您可以使用Invoke-RestMethod调用REST API,本文中有一些示例。
相关文章:
- 敲除:可观察数组没有被正确绑定——只有1个结果显示,而api返回6
- Google Directions API返回不同的waypoint_order和legs
- PhoneGap API返回时间戳格式
- Angular promise从JSON API返回不正确的数据
- 从Google Maps API返回的jQuery格式时间
- Google Feed API-返回媒体:缩略图
- Gmail API 返回 400 个带有批处理请求的错误请求
- 谷歌地图API - 返回60多个地名用于雷达搜索
- 如何从谷歌地图API返回的结果数组中提取城市名称
- 无法使用 AJAX 获取 url 的 StumbleOn 视图,因为它的 API 返回文本/纯文本
- 从 Meteor 中的 Stripe API 返回的 JSON 字典中的访问值
- API 返回 404,但记录插入到数据库中
- 设置要使用 Facebook API 返回的评论数
- 如何从使用 API 返回的 JSON 对象初始化 google.maps.DirectionsResult
- 如何访问维基百科 API 返回的 JSON 中的嵌套对象
- 如何使用脚本获得格子 api 返回的响应
- 节点 js 与 gmail api,API 返回错误:错误:unauthorized_client
- 从开放天气图 API 返回的数据没有意义
- Web API 2 - 返回 pdf,在客户端 (AngularJs) 上显示/下载收到的 pdf 文件
- 使用反向地理编码API返回JSON