Problem with http GET request on node js

2019-03-27 01:42发布

问题:

Im writing an http client to read from facebook using node.js and using the following code:

var http = require('http');

var options = {
  host: 'www.fb.com',
  path: '/',
  "user-agent": "node.js"
};

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

In my browser, this returns a 301 redirect with the location of www.facebook.com, however in node.js I get a 302 response with a location of www.fb.com/common/browser.php. I tried it with the latest version of node and it still throws this error.

I'd really appreciate some help with this, Thanks.

回答1:

This dosent seem to be a bug of node.js I made a request to fb.com in curl and I got the same redirect.

It probably makes that decision based on the user agent... maybe you can use the user agent of a browser :D



回答2:

var request_options = 
{
    host: 'www.fb.com',
    headers: {'user-agent': 'Mozilla/5.0'},
    path: '/'
};

Setting the request option this way should work.



标签: http node.js