1. 程式人生 > >記錄Android Retrofit幾個專案中遇到的Bug

記錄Android Retrofit幾個專案中遇到的Bug

1:sssExpected ':status' header not present

在開發的時候突然發現在android8.0的時候會報這個錯誤,並且無法請求到資料,但是在4.4上面是好的,沒有任何異常

後來一頓上網搜尋,找到解決辦法,我專案中的okhttp版本是3.2.0,升級到3.9.0就好了,在8.0上面可以正常訪問,具體原因是因為協議什麼的,可以自己瞭解下

compile 'com.squareup.okhttp3:okhttp:3.2.0' compile 'com.squareup.okhttp3:logging-interceptor:3.2.0'

將okhttp換到3.9.0之後可以請求到資料但是,如果沒有把日誌攔截器版本進行更新的話,會報另一個錯誤:

Caused by:java.lang.NoClassDefFoundError: okhttp3.internal.Platform

並且專案閃退,這個就是剛說的如果添加了並使用了日誌攔截器,記得把攔截器版本同時更新到3.9.0就可以解決

2:JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path

在使用retrofit的時候有的時候會報這個異常,也很奇怪,剛開始遇到的時候以為是後臺返回json資料有問題,後來把json資料打印出來,校驗發現沒有問題,解決方法:

檢視在構建httpclient的時候有沒有addHeader,就像這樣:

如果有的話,請把 gzip那條去掉:

再次執行就可以了.

開發中遇到的一點問題,寫下來,有遇到同樣問題的可以方便解決...