サーバーから圧縮データを取得しようとしています。サーバーをプログラムした人は、iPhone で ZLIB ライブラリを使用し、サーバーで gzcompress を使用していると私に言いました。そのデータを取得する適切な方法を見つけようとしていましたが、GZIPInputStream オブジェクトの作成中に「java.io.IOException: 不明な形式 (マジック番号 9c78)」という情報が表示されます。最後に、データを文字列として持っているポイントに到達しました。圧縮されていたので、その回答を使用して解凍しました: https://stackoverflow.com/a/6963668/419308。しかし、そのコードは機能しません。「in.read()」は最初に-1を返します。
なぜ -1 があるのか 誰にも分かりますか?または、圧縮データを取得するためのより良い方法でしょうか?
編集: プロジェクトにファイルを追加して、そのファイルから読み取ろうとしました。in.read() が -1 を返さなかった
EDIT2: jJの答えによると、私はこのコードを試しました:
HttpGet request = new HttpGet( urlTeam );
HttpResponse response = new DefaultHttpClient().execute( request );
HttpEntity entity = response.getEntity();
InputStream stream = AndroidHttpClient.getUngzippedContent( entity );
InputStreamReader reader = new InputStreamReader( stream );
BufferedReader buffer = new BufferedReader( reader );
StringBuilder sb = new StringBuilder();
sb.delete( 0, sb.length() );
String input;
while ( ( input = buffer.readLine() ) != null )
{
sb.append( input );
}
しかし、答えはまだ圧縮されています (または読み取れません)。