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壓縮演算法 ,我們前端就不需要了 否則再壓縮資料就是亂碼
相關推薦
Retrofit 請求資料返回亂碼問題筆記
使用預設Gson解析,一直解析錯誤 java.lang.IllegalStateException: ExpectedBEGIN_OBJECT but was STRING at line 1 column 1 path $ 一開始以為Gson解析問
springmvc框架,使用ajax 請求資料返回資料中文亂碼處理
問題:ajax 傳送請求得到的資料中包含中文顯示????亂碼原因:SpringMVC框架的 @RequestBody 和 @ResponseBody兩個註解,分別完成請求物件到物件響應的過程,一步到位,但是因為Spring3.x以後有了HttpMessageConverter
Retrofit請求資料對錯誤以及網路異常的處理
異常處理 Retrofit本身會丟擲HttpException,Gson解析會丟擲解析異常, 此外我們還應該處理與伺服器約定好的“異常”,即上一篇提到的返回資料中result欄位值不會0的情況 這裡要先解決一個問題,就是Gson構建的物件,通過註解定義k
retrofit請求直接返回string
1.新增gradle依賴: compile com.squareup.retrofit2:converter-scalars:2.0.0' 2.更換轉換器 mRetrofit = Retrofit.Builder() .baseUrl(Ht
09.1.VUE學習之watch監聽屬性變化實現類百度搜索欄功能ajax非同步請求資料,返回陣列
09.1html裡 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
rxjava&retrofit請求直接返回string
1.新增gradle依賴: compile com.squareup.retrofit2:converter-scalars:2.0.0' 2.更換轉換器 mRetrofit = Retrofit.Builder() .baseUrl(HttpAdd
跨域請求 資料返回卻無法執行回撥函式的原因之一
由於公司專案的問題,導致跨域的情況比較多。既要考慮安全性問題又要解決跨域。只能從中做一些取捨。 今天發現的問題是,前端已經獲取了後臺返回的CALLBACK函式,但是無論如何都不執行。這可把我急的,之前也寫過一次跨域請求。現在呼叫同樣寫好的函式,卻是一個能執行一
http請求資料返回json中string欄位包含unicode的轉碼
public static String decodeUnicode(String theString) { char aChar; int len = theString.length(); StringBuffer outBuffer =
HttpURLConnection請求返回資料部分亂碼問題
public static String sendPostNew(String url, String param,String authorization) {String result = "";try {URL httpurl = new URL(url);HttpURLConnection httpC
關於http請求返回資料中文亂碼解決方法
在你的http工具類中 有 in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8")); 這行程式碼,注意將 ,"utf-8" 加入到輸入流,這樣在源頭
python爬取ajax請求,返回的json資料格式化報錯json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
python爬取ajax請求,返回Json資料中帶有<html><head></head><body><prestyle="word-wrap: break-word; white-space: pre-wrap;"></pre>
node——3-根據不同請求路徑返回不同資料
var http = require('http'); // 1.建立 Server var server = http.createServer(); // 2.監聽 request 請求事件,設定請求處理函式 server.on('request', function (req,
jmeter請求返回亂碼問題
1、jmeter介面,Content encoding修改編碼格式為utf-8 2、修改apache-jmeter-2.13\bin中jmeter.properties配置,sampleresult.default.encoding=utf-8 3、如果1和2都不行的情況下,線上程組-新增-
Get 與Post 請求資料亂碼處理
Get 與Post 請求方式下中文資料的響應處理 1. 前言 某交流群 Just now 提問者: Get 請求,中文亂碼怎麼處理? 熱心人: 對reques
SpringMvc解決返回前臺資料中文亂碼
1.加註解方式,第一個是返回json格式,第二個是文字格式 @RequestMapping(value="/getCartGoodsListByUserId",produces="application/json;charset=UTF-8") @RequestMapp
Jmeter深度學習第一天——簡單請求、帶header請求、返回值亂碼問題
Jmeter是一個比較通用的介面測試和壓測工具,而且還可以根據需要做二次開發,後續公司可能有壓測的需求,效能測試作為一項基本技能,還是有必要學起來。 一、安裝和啟動 1. 下載安裝包,官網最新版5.0:http://jmeter.apache.org/download_jmeter.cgi;檔
spring RestTemplate http post 請求,返回值中文是亂碼的解決方法
使用 spring 的 RestTemplate http post, 通過body 提交 json 型別的資料,返回值中文是亂碼的解決方法。 下面是虛擬碼 import java.nio.charset.Charset; import java.util.HashMap; impo
HTTP 請求有時我們已經指定了網頁的編碼可是獲取的資料仍然亂碼
C# HTTP 請求有時我們已經指定了網頁的編碼可是獲取的資料仍然亂碼 原因有可能不是編碼的問題,好像是因為返回的資料做了壓縮 我們做如下操作 string htmlString = "";
Vue.js學習筆記——請求資料的幾種方式(v-resource,axios)
一、 v-resource 1. 在搭建好腳手架之後,安裝v-resource ——npm/cnpm install v-resource --save 2. 在main.js中進行註冊 import VueResource from 'vu
Android 4.4 網路get請求出現中文亂碼 導致伺服器無法對傳輸的資料進行解析
最近在進行Android開發的過程中,發現了一個問題,特意在這裡記錄一下。下面我來描述一下這個問題:當我在Android 4.4版本進行http get請求的時候,我的get請求連結裡的中文字串顯示為???,導致伺服器不能正常識別我的引數,從而使程式執行出錯(並不是所有的An