【问题标题】:Http using same request got different response使用相同请求的 Http 得到不同的响应
【发布时间】: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


【解决方案1】:

superagent.get 使用

oDes.dest.URL

另一个正在使用

oD.dest.URL

您似乎在其中混合了一些变量名...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2019-07-29
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-24
  • 2014-07-07
  • 2014-09-10
相关资源
最近更新 更多