获取请求的第一个响应状态代码

时间:2016-11-17 14:34:38

标签: node.js http redirect request http-status-code-301

我正在请求example.com,而不是将其重定向到具有301或302状态的www.example.com,然后我从www.example.com获得代码为200的响应。我希望所有状态不仅仅是最后一个。我在节点服务器中使用'request'模块。 这是我的代码

 app.post("/check", function(req, res) {
  var link = req.body.url;

  var opts = {
    uri: link,
    gzip: true,
    followRedirect :function (resp) {
      return true;
    }
  };
  request(opts, function (error, res, body) {
    if (res.statusCode > 300 && res.statusCode < 400 && res.headers.location) {
      if (url.parse(res.headers.location).hostname) {
      } else {
      }
    }

1 个答案:

答案 0 :(得分:0)

不完全确定你想要输出的是什么,但试试这个:

app.post("/check", function(req, res) {
  var link = req.body.url;
  var redirectCodes = [];

  var opts = {
    uri: link,
    gzip: true,
    followRedirect :function (resp) {
      redirectCodes.push(resp.statusCode);
      return true;
    }
  };
  request(opts, function (error, res, body) {
    res.end(JSON.stringify({
      body: body,
      redirectCodes: redirectCodes
    }, null, 2));
  }
});