之前在公司的项目上,发现一个下载网络文件不完整的情况,在这里跟大家分享下~~
公司的项目中有个下载附件的功能(就是下载些word文档),在4.0系统的手机上测试的时候发现下载的word的文档总是无法打开;于是将下载下来的word文件和原文件比较了下大小,发现下载的word总是比原文件小。研究下来发现HttpURLConnection.getContentLength()获取的size跟下载下来的file的legth不等。本着快速解决问题的原则,请教了下google大神,可是google上这类的问题也少的很;功夫不负有心人,终于发现一个关于此问题的帖子。
原来HttpURLConnection跟服务交互采用了"gzip"压缩。所以下载的fileLegth > HttpURLConnection.getContentLength(),而这种gzip压缩方式是可以取消的。取消办法就是在http request的head中设置如下参数即可:urlConnection.setRequestProperty("Accept-Encoding", "identity");
就这样,诡异的问题解决了~~~~~
文中提到的帖子地址:http://blog.sina.com.cn/s/blog_783ede0301015bob.html
公司的项目中有个下载附件的功能(就是下载些word文档),在4.0系统的手机上测试的时候发现下载的word的文档总是无法打开;于是将下载下来的word文件和原文件比较了下大小,发现下载的word总是比原文件小。研究下来发现HttpURLConnection.getContentLength()获取的size跟下载下来的file的legth不等。本着快速解决问题的原则,请教了下google大神,可是google上这类的问题也少的很;功夫不负有心人,终于发现一个关于此问题的帖子。
原来HttpURLConnection跟服务交互采用了"gzip"压缩。所以下载的fileLegth > HttpURLConnection.getContentLength(),而这种gzip压缩方式是可以取消的。取消办法就是在http request的head中设置如下参数即可:urlConnection.setRequestProperty("Accept-Encoding", "identity");
就这样,诡异的问题解决了~~~~~
文中提到的帖子地址:http://blog.sina.com.cn/s/blog_783ede0301015bob.html