javascript-连接到我的Visual Studio Online API会返回HTTP 302
作者:互联网
我正在尝试通过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响应代码的原因.
我修改代码以将Authorization添加到标头并删除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函数,而there是有关如何使用它的示例.
对于PowerShell,可以使用Invoke-RestMethod来调用REST API,本文中的示例为there.
标签:node-js,azure-devops,javascript 来源: https://codeday.me/bug/20191118/2025219.html