首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无限内容长度的测试

无限内容长度的测试
EN

Stack Overflow用户
提问于 2016-09-27 01:05:31
回答 2查看 414关注 0票数 0

我一直在尝试构建一个网络爬虫,为它遇到的文件生成校验和。我不想为无限的数据流(互联网电台、实时视频源等)生成校验和,因为这会挂起爬虫,并最终导致它耗尽内存。因此,我需要一种方法来过滤掉这些。

我尝试检查content-length是否设置为-1,因为流媒体不报告内容长度,但发现许多其他服务器选择不报告其文档的内容长度,或者使用不报告内容长度的渐进式下载。我目前的解决方案是检查content-typevideo/*还是audio/*content-length是-1,但这可能会抛出渐进式下载的媒体文件,这些文件的长度不是无限的。

有没有一种简单的方法可以测试一个流是否无限长,而不需要检查它是否超过了任意值?我这个项目的语言是带有JSoup的Java,如果有关系的话。

EN

回答 2

Stack Overflow用户

发布于 2016-09-27 01:16:24

有没有一种简单的方法可以测试一个流是否无限长,而不需要检查它是否超过了任意值?

既没有简单的方法也没有困难的方法来确定在到达末尾之前可以从任意流中读取多少字节。实际上,即使web服务器发送指示特定内容长度的响应头,也不能保证它不会发送比广告更多的内容,甚至不能保证内容是有限的。

即使你使用你所描述的启发式方法,你也需要准备好切断内容,如果它超过了你准备容纳的时间。

票数 1
EN

Stack Overflow用户

发布于 2016-09-27 01:33:30

如果响应中没有Content-Length,您可以假定它的流,如果您看到:

代码语言:javascript
复制
Transfer-Encoding: chunked

https://en.wikipedia.org/wiki/Chunked_transfer_encoding

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39708507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档