如何在 301 重定向之前使用 superagent 获取原始 html 代码?
how to get the raw html code use superagent before 301 redirects?
这是网站 http://sf.gg, when open it, it will be redirected to the site 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,但是不知道怎么用,或者说是正确的使用方法?
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()
这是网站 http://sf.gg, when open it, it will be redirected to the site 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,但是不知道怎么用,或者说是正确的使用方法?
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()