我正在尝试通过 Node 连接到我的 VSTS build 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响应码。
我修改代码以将授权添加到 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 中有 createDefinition 函数(xxx), there是关于如何使用它的示例。
对于 PowerShell,您可以使用 Invoke-RestMethod 调用 REST API,there是本文中的一些示例。
关于javascript - 连接到我的 Visual Studio Online API 返回 HTTP 302,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40102207/