发出 HTTPs 请求时出现“错误:getaddrinfo ENOTFOUND”错误

新手上路,请多包涵

这是 AWS Lambda 函数中的代码:

 var https = require('https');
exports.handler = (event, context, callback) => {
    var params = {
        host: "bittrex.com",
        path: "/api/v1.1/public/getmarketsummaries"
    };
    var req = https.request(params, function(res) {
        var test = res.toString();
        console.log(JSON.parse(test));
        //console.log(JSON.parse(res.toString()));
    });
    req.end();
};

错误:getaddrinfo ENOTFOUND https://bittrex.com https://bittrex.com:443 在 errnoException (dns.js:28:10) 在 GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

其他解决方案无效。

原文由 AmazingDayToday 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.9k
2 个回答

我修改了您的代码以在 AWS Lambda Node.js 6.10 中正常工作。我将 Lambda 超时设置为 60 秒以进行测试。

最大的变化是添加了“res.on(‘data’, function(chunk) {}:”和“res.on(‘end’, function() {})”。

 var https = require('https');
exports.handler = (event, context, callback) => {
    var params = {
        host: "bittrex.com",
        path: "/api/v1.1/public/getmarketsummaries"
    };
    var req = https.request(params, function(res) {
        let data = '';
        console.log('STATUS: ' + res.statusCode);
        res.setEncoding('utf8');
        res.on('data', function(chunk) {
            data += chunk;
        });
        res.on('end', function() {
            console.log("DONE");
            console.log(JSON.parse(data));
        });
    });
    req.end();
};

原文由 John Hanley 发布,翻译遵循 CC BY-SA 3.0 许可协议

从主机中删除 https:// 。要求已经说明您正在使用 https/SSL。

原文由 stdunbar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题