首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodejs请求ECONNREFUSED

nodejs请求ECONNREFUSED
EN

Stack Overflow用户
提问于 2017-02-27 15:13:54
回答 1查看 3.4K关注 0票数 1

我有一些ECONNREFUSED与‘请求’模块,但有一段时间我的请求通过没有错误的O_o .所以我再次提出我的请求,但这不能解决问题.

代码语言:javascript
复制
let request     = require("request");
let currency = 'btceur';
let data = [];
let url             = "https://api.cryptowat.ch/markets/kraken/" + currency + "/price";
let nbTry           = 0;
let nbMaxTry        = 5;
let callbackRequest = (error, response, body) => {
    if (error || response.statusCode != 200) {
        console.log('error', 'error, retry ' + (nbTry + 1) + "/" + nbMaxTry);
        console.log(error);
        if (nbTry <= nbMaxTry) {
            nbTry++;
            request(url, callbackRequest);
        } else {
            console.log(data);
        }
    } else {
        let bodyjson             = JSON.parse(body);
        bodyjson.result.currency = currency;
        data.push(bodyjson.result);
        console.log(data);
    }
};
request(url, callbackRequest);

控制台输出:

代码语言:javascript
复制
error error, retry 1/5
{ Error: connect ECONNREFUSED 69.164.196.116:443
    at Object.exports._errnoException (util.js:1022:11)
at exports._exceptionWithHostPort (util.js:1045:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  address: '69.164.196.116',
  port: 443 }
[ { price: 1113.5, currency: 'btceur' } ]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-27 16:12:46

api.cryptowat.ch解析为两个IP号码,23.239.28.55和69.164.196.116.后者提出了一些问题(对我也是如此)。

您可以尝试为每个请求使用前者作为临时解决方案:

代码语言:javascript
复制
let url = "https://23.239.28.55/markets/kraken/" + currency + "/price";

它似乎不需要一个Host头,不过如果您传递一个头部,可能会更好:

代码语言:javascript
复制
request({ url, headers : { Host : 'api.cryptowat.ch' } }, callbackRequest);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42489222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档