iOS gzip网络传输的一个Bug
最近碰到一个Bug, Boss的手机在3G一直无法登录成功,硬件iPhone 5,系统iOS 6.1.3。从服务器的日志来看,登录过程已经完成,所有数据已经下发下来,但是到了客户端却一直不能解析数据出来。通过浏览器访问服务器,得到的数据也是乱码。
服务器返回的http头content-encoding为utf-8,wifi 状态下手机得到的也是utf-8,但是到了3G状态下变成了utf-8,gzip。也就是说中间有网关或者服务器把数据做了gzip压缩。但是iOS系统本身应该也支持gzip压缩,为什么也解不出来,而且放到safari访问也解不出了,是不是系统的bug?而且用其他同硬件、同操作系统的手机却能正常访问。
有两种可能:
1、虽然其他手机有硬件、系统相同,但是由于不同的套餐,Boss的套餐数据被运营商压缩了,其他手机套餐没有被压缩
2、Boss手机出现了Bug,无法解压gzip
最终解决方案是,在请求完成后,调用第三方gzip解码器,把数据解码出来,bug解决。最终原因未知。