Я пытаюсь вызвать конечную точку REST API из node.js, используя модуль request. Я получаю ответ 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.info('Request successful.');
}
else {
console.info('Error = ' + error) ;
}
})
Я прочитал все сообщения на этом сайте, чтобы попытаться решить эту проблему, пробовал все предложения, включая опцию auth ниже (в объекте заголовков):
Я пробовал использовать объект заголовков (ниже):
var headers = {
'Accept': 'application/json',
'Authorization': 'Basic VUdFUTdDZkY6RmJsb0QyWiQ='
/*
'auth': {
'user': 'UGEQ7CfF',
'pass': 'FbloD2Z$',
'sendImmediately': false
}
*/
}
Я попытался использовать аксиомы, код ниже, и все работает. (Мне действительно нужно продолжать использовать модуль запроса, потому что я использую его в 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.info(response.status);
}).catch(function(error) {
console.info(error);
});
Может ли кто-нибудь помочь, предоставив правильный код для этого? Я потратил дни, пытаясь понять это. Спасибо.
Спасибо iLuvLogic. Я смотрел на это, но не понимаю, как это связано с моей проблемой.
Если в ближайшие пару дней у меня будет время, я постараюсь опубликовать рабочее решение по вашему вопросу. А пока вы можете взглянуть на мой ответ на этот вопрос - возможно, он поможет вам лучше понять.