【发布时间】:2015-03-29 07:30:44
【问题描述】:
我正在尝试获取 nodejs 中两个 URL 的响应,但 http.request 存在问题。到目前为止,这是我所拥有的:
var url = "https://www.google.com/pretend/this/exists.xml";
var opt = {
host: url.split(".com/")[0] + ".com",
path: "/" + url.split(".com/")[1]
};
callback = function(response){
var str = "";
response.on('data', function(chunk){
str += chunk;
});
response.on('end', function(){
console.log(str);
});
}
http.request(opt, callback).end();
我收到了这个错误
events.js:72
throw er; // Unhandled 'error' event
^
Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
at Object.onanswer [as oncomplete] (dns.js:124:16)
所以我用谷歌搜索并得到了这个 stackoverflow 问题 nodejs httprequest with data - getting error getaddrinfo ENOENT 其中接受的答案说您需要省略协议..但这是问题所在,我需要检查是否
https://www.google.com/pretend/this/exists.xml
给出 200,如果没有 (404),那么我需要检查是否
http://www.google.com/pretend/this/exists.xml
给出一个有效的响应
这就是问题所在,我需要检查特定协议的响应。
有什么想法吗?
编辑: 刚才看http doc(我知道懒惰),我看到了http.get example..我现在试试
编辑 2:
所以我尝试了这个
http.get(url, function(res){
console.log("response: " + res.statusCode);
}).on('error', function(e){
console.log("error: " + e.message);
});
显然不支持 https。
Error: Protocol:https: not supported.
【问题讨论】:
标签: javascript node.js http express