我正在使用NodeJS和Request模块在我的应用程序中进行API调用。我要与之集成的新第三方服务的基本URL随每个发行版而变化(即'https://release-23.service.com/api/v1')。
它们为所有重定向到最新基本URL的端点提供静态基本URL。问题是我还需要在请求中包含一个基本的auth标头。重定向发生时,不会保留此auth标头,因此最终结果是401状态代码。
请求是否支持在重定向时保留auth标头?
我一直在尝试向选项对象添加followRedirect: false
并从响应标头捕获并重试location
,但是理想情况下,我想将Request的重定向功能与auth标头一起使用完好无损,这样我就不会冒破坏可能依赖于重定向的现有逻辑的风险。
这是现有代码的精简版本:
const request = require('request');
const options = {
uri: 'https://www.service.com/api/v1',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
},
auth: {
username: 'username',
password: 'password'
},
json: true,
method: 'GET',
timeout: 30000
};
request(options, function (err, response) {
if (err) {
return err;
}
console.log(response.body);
});