從原始碼角度 解決Volley框架亂碼的問題

2021-07-02 14:19:01 字數 1404 閱讀 1987

用volley框架,解析json 發現了亂碼問題。但是伺服器的有不願 

意改,只能看原始碼改了。 

請參考:

volley框架有三個方法 

stringrequest; 

jsonarrayrequest 

jsonobjectrequest 

發下他們分別都是繼承了jsonrequest 類 

然後呢我們又發現 jsonrequest 類 前面有abstract 是抽象的 

慣性思想就是 三個整合乙個抽象類 那麼三個肯定有類似的方法

結果發現了唯一的抽象類是這個 

parsenetworkresponse(networkresponse response);

那麼就在jsonobjectrequest中找到parsenetworkresponse

@override

protected response

parsenetworkresponse(networkresponse response) catch (unsupportedencodingexception e) catch (jsonexception je)

}

然後再在點 httpheaderparser.parsecharset(response.headers));

}重點來了。the http default (iso-8859-1) if none can be found. 如果接受的頭資訊麼有確定 格式,那麼就用 iso-8859-1 

有點兒坑爹。

解決亂碼方法 

1. 把 return http.default_content_charset; 改為return http.utf_8; 

2. 推薦的方法。重寫parsenetworkresponse方法。 

改為如下**即可

@override

protected responseparsenetworkresponse(networkresponse response) catch (unsupportedencodingexception e) catch (jsonexception je)

}

搞定了。

從原始碼的角度理解Volley

今天從原始碼的角度來理解一下volley中部分功能的實現。新增請求到請求佇列 將請求新增到請求佇列中 public requestadd requestrequest 為請求設定順序編號.request.setsequence getsequencenumber 新增標記 request.addma...

從原始碼角度來看UVM phase

說到uvm phase我們就知道是uvm乙個很重要的特性,從使用者角度來講,其實就是一些很簡單的應用規則,能夠極大地提公升編碼的效率,簡化 複雜度,提高debug的效率。至於應用可以參看zhangqiang大佬的第五章,這裡就不再贅述。本文就從原始碼的角度來看,uvm的phase是怎麼工作的?之前學...

Volley 原始碼分析

http 網路請求到底是怎麼傳送 http 網路請求的響應是怎麼分發 volley 中關鍵的類之間的關係 關鍵的類 1.http 網路請求怎麼傳送出去的?requestqueue.add start requestqueue的 add 方法,把 reqeust 物件新增到 mcachequeue 佇...