【发布时间】:2020-11-23 16:08:25
【问题描述】:
我使用request 库编写了以下运行正常的代码(得到200 的HTTP 响应)。
var request = require('request');
var auth = Buffer.from(`${oD.des.User}:${oD.des.Password}`).toString('base64');
var options = {
'method': 'GET',
'url': oD.dest.URL + path,
'headers': {
'Authorization': 'Basic ' + auth,
'Proxy-Authorization': `Bearer ${accesstoken}`
}
};
return await request(options, function (error, response) {
if (error) {
throw new Error(error);
}
console.log(response.body);
});
现在我用superagent 完全相同的值 做同样的事情,我得到一个错误。
var auth = Buffer.from(`${oD.des.User}:${oD.des.Password}`).toString('base64');
return superagent
.get(oD.dest.URL + path)
.set('Proxy-Authorization', `Bearer ${accesstoken}}`)
.set('Authorization', 'Basic ' + auth)
.end((err, res) => {
console.log(err);
});
这里出错了,为什么???
0: Error: getaddrinfo ENOTFOUND fdev.wa.glb.corp.srd fdev.wa.glb.corp.srd:443
[[StableObjectId]]: 1
code: "ENOTFOUND"
errno: "ENOTFOUND"
我为此苦苦挣扎了将近两天。
【问题讨论】:
-
两个示例中的
path是如何定义的? -
@SebastianKaczmarek - 路径是完全相同的值(双重/三重检查)... myabe 在 superagent 我应该添加另一个属性?
-
ENOTFOUND表示您正在使用的 DNS 服务器(或链中的 DNS 服务器)无法解析主机名 (fdev.wa.glb.corp.srd)。这可能有多种原因 - 您是否有任何特殊的 DNS 配置?该 DNS 是否仅在内部发布?是否发生了 DNS 循环? -
@wally - 这很有趣,因为
request 库能够以http200响应发出请求(代码原样成功),你认为用户代理使用dns 解析不同? -
@wally - 奇怪的是,当我使用
request运行它时,它总是提供良好的响应并且非常稳定
标签: javascript node.js http httprequest superagent