1. 程式人生 > >Retrofit 請求資料返回亂碼問題筆記

Retrofit 請求資料返回亂碼問題筆記

使用預設Gson解析,一直解析錯誤

java.lang.IllegalStateException: ExpectedBEGIN_OBJECT but was STRING at line 1 column 1 path $

一開始以為Gson解析問題 後來發現不是 因為我把Gson換成了自定義的 StringConverterFactory或者ScalarsConverterFactory 的string直接讀取後臺的json 。

結果一直是亂碼,且我抓包返回資料是沒有問題的

再根據okhttp 返回亂碼結果查詢半天,發現是請求頭裡的

.addheader(“Accept-Encoding”, “gzip”);問題

當你新增自己的 Accept-Encoding 頭資訊時, OkHttp會認為你要自己處理解壓縮步驟. 刪除這個頭資訊後, OkHttp 會自動處理加頭資訊和解壓縮的步驟.

所以, 程式碼註釋掉, 問題解決.

去掉請求頭裡的addheader(“Accept-Encoding”, “gzip”);

應該是伺服器後臺已經設定資料gzip壓縮演算法 ,我們前端就不需要了 否則再壓縮資料就是亂碼