编程语言
首页 > 编程语言> > javascript-连接到我的Visual Studio Online API会返回HTTP 302

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