OkHttp2.0有Bug,暂时不推荐在产品中使用

版权声明:

欢迎转载,但请保留文章原始出处

作者:GavinCT

出处:http://www.cnblogs.com/ct2011/p/4078137.html

之前在博客里推荐使用OkHttp来替换HttpClient、HttpUrlConnection,项目上线以后发现打脸了。
打脸归打脸,错误还得及时纠正。

问题

最近项目引入OkHttp上线以后,收到用户反馈说软件无法获取服务器信息。
感谢用户的配合,让我找到了OkHttp这个隐藏比较深的bug。

提醒

OkHttp2.0有Bug,现在还不适宜引入项目代替HttpClient、HttpUrlConnection

Bug描述

首先需要声明,不是所有设备都能重现,仅少量设备会出现这个问题。(如果问题这么明显,OkHttp早就修复了)

设备

酷派大神F1, 刷了MIUI

项目中使用的OkHttp库

OkHttp2.0 Okio1.0

Log崩溃信息如下

10-29 17:18:30.036: W/System.err(20871): java.io.EOFException
10-29 17:18:30.040: W/System.err(20871): 	at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:154)
10-29 17:18:30.041: W/System.err(20871): 	at com.squareup.okhttp.internal.http.HttpConnection.readResponse(HttpConnection.java:189)
10-29 17:18:30.044: W/System.err(20871): 	at com.squareup.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:101)
10-29 17:18:30.045: W/System.err(20871): 	at com.squareup.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:676)
10-29 17:18:30.046: W/System.err(20871): 	at com.squareup.okhttp.Call.getResponse(Call.java:205)
10-29 17:18:30.047: W/System.err(20871): 	at com.squareup.okhttp.Call.execute(Call.java:80)
10-29 17:18:30.048: W/System.err(20871): 	at com.czt.okhttpdemo.MainActivity$1.run(MainActivity.java:34)

查到Github issue里显示,有些用户在2.0正式版之前是没有问题的,但是2.0时候确实存在这个bug,而且一直也没有修复。

官方答复

出现这个bug后,我也反馈给了OkHttp,他们现在标记在2.3版本里面解决。
Github issue链接

Update=======

Issues-1518显示似乎已经修复,产品使用OkHttp2.5后不少用户反映已经可以使用

posted @ 2014-11-06 10:52  GavinCT  阅读(6093)  评论(0编辑  收藏  举报