在收到第一个字节后停止superagent(仅获取重定向url)

我使用superagent(尽管愿意使用其他节点库),目标是单独获取重定向的url,但不是body。 后者是矫枉过正,我想阻止我的代码下载身体,如果我可以帮助它。

我无法使用HEAD请求,因为这些不能保证在服务器上启用。

相反,我的想法是将superagent响应传递给writeStream,并在接收到第一个数据时停止writeStream。 但是, .on('data', fn)仅在读取流而不是写入流中可用。

相反,我试图查看superagent.get(...)本身是否是一个readstream,我可以通过它来监听.on('data', fn)来杀死这个流,但这似乎也不是这样。

简而言之,是否有另一种方式可以尽早取消请求,同时仍然获得重定向url,但不会导致整个机构的下载开销?


解决:需要buffer(false) 。 使用该响应可被视为适当的读取流。

            const url = "http://www.google.com";
            superagent.get(url)
            .buffer(false)
            .end(function (err, res) {
              const urlRedirect = res.redirects.length ? res.redirects.pop() : url;
              res.destroy();
              res.on("end", function () {
                //do stuff with 'urlRedirect'
              })
            })
链接地址: http://www.djcxy.com/p/96723.html

上一篇: stop superagent after receiving first byte (to only get redirect url)

下一篇: MemoryError in python with chunked uploading