Retrofit 自定義Converter解密網(wǎng)絡(luò)請(qǐng)求新套路

使用retrofit處理網(wǎng)絡(luò)請(qǐng)求時(shí),通常解析的結(jié)果是通過(guò)GsonConverterFactory或者是其他的Jackson之類的解析器來(lái)處理Json對(duì)象的解析。遇到需要解密的時(shí)候,先看返回的數(shù)據(jù):

{"retCode":200,"retDesc":"Success","ret":xxxxxx}

? ? ret里存放的是加密過(guò)的數(shù)據(jù)。

兩種套路:

一. 自定義Converter

.addConverterFactory(MyConverterFactory.create())

通常可以處理將所有的請(qǐng)求的返回全部進(jìn)行解密,如果我們要根據(jù)請(qǐng)求去判斷是否解密,因?yàn)樵贑onverter里無(wú)法獲取到Reqest和Response對(duì)象,所有如何判斷這個(gè)接口請(qǐng)求是否需要解密結(jié)果是個(gè)問(wèn)題。

二.將對(duì)象解析成json后處理加密的ret

結(jié)合RxJava使用map轉(zhuǎn)換。


使用注解

public interface GitHubService {

@GET("users/{user}/repos")

?Call> listRepos(@Path("user") String user);

?}

Retrofit構(gòu)造請(qǐng)求時(shí),使用了注解@GET,再看看Converter里的代碼

發(fā)現(xiàn)參數(shù)里返回里傳了annotations數(shù)組,所以,遍歷它吧,里面包含了所有你寫(xiě)請(qǐng)求時(shí)加的注解

@Override?

public Converter responseBodyConverter(Type type, Annotation[] annotations, Retrofitretrofit) {?

????boolean encryt = false;??

????for (int i = 0; i < annotations.length; i++) {???

????????if (annotations[i].annotationType().toString().equals(ENCRYT.class.toString())) {???????

????????????encryt = true;?????

????????}????

? ? ?}???

return new MyResponseBodyConverter<>(gson, type, encryt);

}

自定義一個(gè)注解@XXX,請(qǐng)求時(shí)寫(xiě)上標(biāo)記你的請(qǐng)求類型,加密。

然后你就可以在Converter里處理了。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 個(gè)人淺見(jiàn),歡迎批評(píng)!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • 簡(jiǎn)介 剛接觸Retrofit的時(shí)候,就寫(xiě)了一篇簡(jiǎn)單的使用介紹:Retrofit 2.0基本使用方法,算是對(duì)Retr...
    Whyn閱讀 3,111評(píng)論 4 24
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,978評(píng)論 1 92
  • 本文將順著構(gòu)建請(qǐng)求對(duì)象->構(gòu)建請(qǐng)求接口->發(fā)起同步/異步請(qǐng)求的流程,分析Retrofit是如何實(shí)現(xiàn)的。 開(kāi)始之前,...
    zhuhf閱讀 1,687評(píng)論 0 10
  • 我不是你最早的一批粉絲,不是最癡的迷妹。我只是那個(gè)單純尊敬崇拜你的胡椒。 初始驚艷已淪陷 當(dāng)我...
    杳_閱讀 491評(píng)論 4 7

友情鏈接更多精彩內(nèi)容