无法在node.js / request模块中获得基本身份验证以处理PUT或POST请求

时间:2018-10-31 12:38:08

标签: node.js

我正在尝试使用“请求”模块从node.js调用REST API端点。我一直收到401无效的凭据响应。代码如下:

 var q =  {
        'boothNumber':'1400',
        'databaseName':'demo',
        'exhibitorId':'T19',
        'comment':'N/A'
    };

    var options = {
        url: 'https://api2.e-----d.com',
        path: '/edgewebapi/ACTDev2/booths/hold',
        method: 'PUT',
        //headers: headers,
        headers: { 'Authorization':'Basic VUdFUTdDZkY6RmJsb0QyWiQ='},
        body: JSON.stringify(q)
    }
    request(options, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            console.log('Request successful.');
        }
        else {
            console.log('Error = ' + error) ;
        }
    })

我已经阅读了本网站上的所有帖子以尝试解决它,尝试了所有建议,包括下面的“ auth”选项(在标头对象中):

我尝试使用标头对象(如下):

var headers = {
    'Accept':        'application/json',
    'Authorization': 'Basic VUdFUTdDZkY6RmJsb0QyWiQ='
    /*
    'auth': {
        'user': 'UGEQ7CfF',
        'pass': 'FbloD2Z$',
        'sendImmediately': false
        }
    */
    }

我尝试使用axios,下面的代码重试,一切正常。 (我确实确实需要继续使用请求模块,因为我在AWS Lambda中使用了该模块,而axios导致了其他问题……):

axios.put(
'https://api2.e---d.com/edgewebapi/ACTDev2/booths/hold?boothNumber=1400&databaseName=demo&exhibitorId=T19',
{},
{ headers : {'Authorization': 'Basic VUdFUTdDZkY6RmJsb0QyWiQ=' } }
).then(function(response) {
  console.log(response.status);
}).catch(function(error) {
  console.log(error);
});

有人可以提供正确的代码来帮助您吗?我花了数天试图弄清楚。谢谢。

0 个答案:

没有答案