2016-08-31 123 views
1

我正在一個小測試節點項目中運行以下內容。錯誤:連接ECONNREFUSED node.js https.get請求

var https = require('https'); 

var request = https.get('https://example.com/script.json', function(response){ 
    console.dir(response); 
}); 

request.on('error', function(){ 
    console.log(err); 
}); 

當我嘗試console.dir響應時出現以下錯誤。

throw er; // Unhandles 'error' event 
Error: connect ECONNREFUSED xxx.xx.xxx.xx:xxx 

這是一個簡單的獲取對外部服務器上的json文件的請求。我知道該文件存在,所以我不知道爲什麼我會得到上述錯誤。該文件可以在瀏覽器中運行,不需要驗證。

UPDATE:我編輯了代碼。創造了一個承諾,並添加了一個.on('error'...來解決任何問題。

以下是目前輸出:

([Error: connect ECONNREFUSED xxx.xx.xxx.xx:xxx] 
    code: 'ECONNREFUSED', 
    errno: 'ECONNREFUSED', 
    syscall: 'connect', 
    address: 'xxx.xxx.xxx.xxx', 
    port: 443) 
+1

你確定你的瀏覽器是不是爲您服務緩存版本從連接到HTTPS代理服務器後面?您是否使用某種可防止「未授權」應用程序進行網絡連接的防火牆? – robertklep

+0

@robertklep - 是的,我在一個代理。我有細節(端口等)。如你所說,這可能會導致問題。我已經有'npm config set proxy http'和'npm config set proxy https'設置了。但是這個錯誤是由什麼引起的? – fidev

+1

如果您使用代理服務器,請查看['request'](https://github.com/request/request#proxies),這使得處理代理服務器變得更容易。 – robertklep

回答

1

感謝來自@robertklep幫我想出了以下解決方案,讓我使用要求

const https = require('https'); 
const request = require('request'); 

request(
    { 
    'url':'https://https://example.com/script.json', 
    'proxy':'http://xx.xxx.xxx.xx' 
    }, 
    function (error, response, body) { 
     if (!error && response.statusCode == 200) { 
      console.log(body); 
     } 
    } 
); 
0

其他服務器不起來,或者讓你得到一個連接被拒絕不聽443端口。 另一種選擇是,nodejs應用程序將解析該示例url不同於您的pc不同的ip。

+0

好吧,除了嘗試另一個端口,我將如何解決您提出的第二個可能的問題。 – fidev

+0

在你的測試中使用直接ip,更新機器上的hosts文件,等等...... – sagie

+0

謝謝 - 但這對我來說並沒有多大意義。剛剛開始與nodejs – fidev

相關問題