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后不少用戶反映已經可以使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM