2016-06-13 81 views
0

運行以下腳本時出現錯誤socket hang up。但如果我將主機從www.google.com更改爲www.nodejs.org,一切工作正常。爲什麼?http.get上的「套接字掛起」

var http = require('http'); 

var options = { 
     host: 'www.google.com', 
     port: 443, 
     path: '/' 
}; 
http.get(options, function(data) { 
     console.log('OK'); 
     data.resume(); 
}).on('error', function(e) { 
     console.log('Error: ' + e.message); 
}); 

回答

2

www.google.com完全拒絕發送給它的HTTPS服務器非HTTPS請求,並www.nodejs.org不會(它將,然而,返回一個HTTP 400狀態,因爲你是一個普通的HTTP請求到HTTPS服務器)。

進行HTTPS請求,您需要使用https模塊:

var http = require('https'); 
+0

它的工作原理,謝謝。 – Searene