我正在尝试从服务器获取压缩数据。编程服务器的人告诉我,他在他的iPhone上使用ZLIB库,在服务器上使用gzcompress。我试图找到任何合适的方法来获取该数据,但在创建GZIPInputStream对象时,它最终会出现信息“java.io.IOException:unknown format(magic number 9c78)”。最后我达到了一点,我将数据作为字符串。它被压缩了,所以我用这个答案解压缩:https://stackoverflow.com/a/6963668/419308。但该代码不起作用。 “in.read()”在开头返回-1。
任何人都知道为什么有-1?或者可能是获取压缩数据的更好方法?
编辑: 我尝试将文件添加到项目并从该文件中读取。 in.read()没有返回-1
EDIT2:根据jJ's answer我试过这段代码:
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 );
}
但答案仍然是压缩的(或不可读的)
答案 0 :(得分:0)
这是一个很好的总结Android HTTP clients