2016-06-13 38 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