添加可配置的输入限制和截断报告
作者: jhy创建于 2026年7月26日更新于 2026年7月27日
标签improvement
`File`, `Path` 和 `InputStream` 解析 API 目前在读取输入时没有大小限制,包括自动从 gzip 文件中解压的数据。现有的无限默认值应保留,因为这些 API 通常会完全解析调用者选择的文档,而应用 HTTP 的 2 MB 默认值会改变现有的处理大文件的行为。调用者在解析不受信任或压缩的内容时,应有直观的方式来限制输入。添加一个可选的解析器输入大小限制,可能在 `Parser` 中进行配置,以避免重复使用现有的 `Jsoup.parse` 重载。该限制应适用于解压后的解析器输入,并使用 `0` 表示无限。当达到限制时,解析器应暴露其输入是否被截断,例如通过 `Parser.isInputTruncated()` 来表明,以便将部分 DOM 不能误认为是完整解析。`Connection.Response` 应类似地暴露 `maxBodySize` 是否截断了响应,并在解析响应时将此状态传递给解析器。控制和截断状态应在常规、连接和流式解析器入口之间保持一致。
内容来源: jhy/jsoup