http进入nodejs

时间:2016-06-23 09:12:33

标签: node.js http https http-get

var http = require('http');
exports.get = function(){
  var options = {
    host: 'http://stackoverflow.com/'
  };

  http.get(options, function(res) {
    console.log("Got response: " + res.statusCode);
  }).on('error', function(e) {
    console.log("Got error: " + e.message);
  });
};

给我的错误为Got error: getaddrinfo ENOTFOUND http://stackoverflow.com/ http://stackoverflow.com/:80 我用的是文档; https://nodejs.org/docs/v0.5.2/api/http.html#request.url

可能是什么问题,我在选项中添加了端口号;

var options = {
  host: 'http://stackoverflow.com/'
  port:443 //also  port:8080,  port:80, port: 8118
};

但仍然没有解决方案。是关于公司代理吗?

如何联系该链接?

2 个答案:

答案 0 :(得分:3)

主机不是网址。尝试

主持人

stackoverflow.com

var options = {
     host: 'stackoverflow.com',
     port: 80,
     path: '/',
     method: 'GET'
};

var req = http.request(options, function(res) {
   console.log('STATUS: ' + res.statusCode);
   console.log('HEADERS: ' + JSON.stringify(res.headers));
   ...

答案 1 :(得分:0)

此问题有时会发生,具体取决于主机,某些主机(如'stackoverflow.com')可能会返回200,在某些情况下,例如'google.com'可能会返回301状态代码,因此您应该填写主机变量,如下所示代码200:

var options = {
    host: 'www.google.com',
    port: 80,
    path: '/',
    method: 'GET'
};

主持人:'www.google.com'我的状态代码为200。 但主持人:'stackoverflow.com'只有当我删除'www。'我将获得状态代码200。

任何有这个问题的人,你都应该尝试使用和不使用'www'。得到正确的结果。