gpt4 book ai didi

Java 和 HttpUnit 存在 GZip 错误

转载 作者:行者123 更新时间:2023-12-01 15:21:46 24 4
gpt4 key购买 nike

我已经连续近 6 个小时试图找到解决方法,但没有成功。
我有一个简单的 HttpUnit 程序,可以登录网站。问题是当我最终提交登录表单时出现此错误:

Exception in thread "main" java.io.EOFException: Unexpected end of ZLIB input stream
at java.util.zip.InflaterInputStream.fill(InflaterInputStream.java:223)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:141)
at java.util.zip.GZIPInputStream.read(GZIPInputStream.java:92)
at com.meterware.httpunit.WebResponse.readFromStream(WebResponse.java:967)
..and so on..

出现a bug早在 2002 年就有报道称 JDK 管理 gzip 文件的方式(!)。看起来 Java 仍然存在这个错误,唯一的解决方法是告诉 HttpUnit 不要接受 gzip 编码的数据,如下所示:

WebConversation.getClientProperties().setAcceptGzip(false);

不幸的是,我做不到。为了成功登录,我需要启用 gzip,否则我只会重定向到通用主页(无需登录)。
我怀疑完成这项工作的唯一方法是更改​​ HttpUnit 的源代码并处理 gzip 解析中的 EOF 异常。我迫切需要帮助。有人有解决办法吗?

如果没有,那么您能否建议一些同样简单的 Java API,例如 HttpUnit,用于填写表单和登录等任务。

最佳答案

I suspect the only way to make this work would be to change the source code of HttpUnit and handle the EOF excpetion in it's gzip parsing.

当第三方库存在错误时,这通常是开发人员的解决方案。如果您知道 HttpUnit 中存在问题,为什么不在本地修复它呢?您甚至可以将修复程序推回项目并希望他们采用它。

If not, then could you suggest some equivalently simple API in Java, such as HttpUnit, for tasks such as filling forms and signing in.

如果您指的是一个用于遍历网站的库,那么有很多。如果您想要一个“ headless ”HTTP 客户端,请尝试 Apache HttpComponents HttpClient。如果您想要实际使用浏览器的东西,请尝试 Selenium .

关于Java 和 HttpUnit 存在 GZip 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10805649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com