私はこれに対する回避策を6時間近く続けて見つけようとしていますが、役に立ちません。
Webサイトにサインインする単純な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..
JDKがgzipファイルを管理していた方法にバグがあるようです(!)。Javaにはまだこのバグがあるようです。唯一の回避策は、次のように、gzipでエンコードされたデータを受け入れないようにHttpUnitに指示することです。
WebConversation.getClientProperties().setAcceptGzip(false);
残念ながら、これはできません。サインインを成功させるには、gzipを有効にする必要があります。有効にしないと、(サインインせずに)一般的なホームページにリダイレクトされます。
これを機能させる唯一の方法は、HttpUnitのソースコードを変更し、gzip解析でEOFの例外を処理することだと思います。私は必死に助けが必要です。誰かがこれに対する解決策を持っていますか?
そうでない場合は、フォームへの入力やサインインなどのタスクのために、HttpUnitなどのJavaで同等に単純なAPIを提案できますか。