【问题标题】:how to get the raw html code use superagent before 301 redirects?如何在 301 重定向之前获取原始 html 代码使用 superagent?
【发布时间】:2018-01-27 23:23:35
【问题描述】:

这里是站点http://sf.gg,打开后会重定向到站点https://segmentfault.com

使用curl我可以得到http://sf.gg的html代码:

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.4.6 (Ubuntu)</center>
</body>
</html>

我想知道如何使用节点模块superagent获得它?

看到Following redirects,但是不知道怎么用,还是用对了?

【问题讨论】:

    标签: node.js superagent


    【解决方案1】:

    SuperAgent 默认将 3xx 响应视为 errors。 因此,您必须在重定向发生之前处理错误以获取页面内容。我们可以强制 SuperAgent 不遵循.redirects(0) 的重定向并打印响应:

    const superagent = require('superagent') 
    
    superagent
      .get('http://sf.gg')
      .redirects(0)
      .on('error', err => {
        console.log(err.response.text)
      })
      .end()
    

    或者您可以使用.ok() 更准确地处理响应:

    superagent
      .get('http://sf.gg')
      .redirects(0)
      .ok(res => {
        if (res.status === 301)
          console.log(res.text)
      })
      .end()
    

    【讨论】:

      猜你喜欢
      • 2013-02-12
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-18
      • 2019-10-28
      • 2013-02-14
      相关资源
      最近更新 更多