javascript - 连接到我的 Visual Studio Online API 返回 HTTP 302

标签 javascript node.js azure-devops

我正在尝试通过 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/

相关文章:

javascript - 在 v -for 循环中分别对每个元素进行动画处理 (Vue.JS)

node.js - NodeJS url请求,绝对还是相对?

c# - 无法在 Azure DevOps 2019 中通过代码创建代理池(无权限)

svn - 从 Subversion 构建 Azure DevOps

javascript - 如何在 React 组件中渲染状态数组。该数组在状态下可用,但在渲染时显示未定义

javascript - Window.onload JS <-> PHP 冲突

javascript - 相邻的 JSX 元素必须包裹在一个封闭的标签中 React Native

javascript - Mongoose 在发布数据后复制条目

node.js - pm2 - 非 root 用户权限的启动脚本被拒绝

git - 择优选择后的 Azure DevOps Pull 请求