我正在尝试使用“请求”模块从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);
});
有人可以提供正确的代码来帮助您吗?我花了数天试图弄清楚。谢谢。