我正在尝试从服务器获取压缩数据。编写服务器程序的人告诉我,他在 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 );
}
但是答案仍然是压缩的(或不可读的)