好記性不如寫部落格。
進入自問自答環節:
retrofit 有什麼東西呢?
retrofit 那些類是必須要說的?
思考問題?
請求加密 響應解密 該如何做?
返回體加入特殊字段怎麼做?
流程:因為uml 不方便放上去,所以就簡單說下。
簡單使用:
retrofit.create(method.class).http();簡單流程:
(retrofit) 請求方法()
(requestfactory) 校驗註解
校驗方法(get post) 是否正確。
校驗解析引數與方法是否對應
(converter requset string 轉換 ) post 和 get 進行分類並且呼叫 requestbodyconverter | stringconverter 轉化並組裝。
(httpservicemethod)返回型別 型別的校驗。括號裡面不符合 (void genericarraytype(陣列) typevariable(t ) wildcardtype(萬用字元) ) 從外到裡 判斷。
確認 返回 介面卡(calladapter.get()) == 返回型別
確定返回response 轉換器 converter.responsebodyconverter
(okhttpcall)配置okhttp 請求 響應 取消等流程
invoke
converter.responsebodyconverter 正式使用?
在**算是真正的執行 okhttpcall.execute?
問題一: 請求加密 響應解密 該如何做?
新增自定義 addconverte***ctory
>>>>(具體寫法可參照 gsonconverte***ctory.create(getgson())).
注意:stringconverter 支援:
@fieldmap @headermap @path @query @querymap @field
requestbodyconverter 支援
@body @part @partmap
可以自定義註解 標識改http 是否要加密。
@base64
@post("/")
single> request(@body string body);
問題二: 返回體加入特殊字段怎麼做?
這裡只能提個思路。業務不同,不好細說。
baseresult 是我們定義resulttype
responsebodyconverter 方法中可以獲取返回型別。
彩蛋:
設定 validateeagerly=true,會發現不一樣的地方。
Cartographer原始碼篇 原始碼分析 1
在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...
AbstractListView原始碼分析3
normal list that does not indicate choices public static final int choice mode none 0 the list allows up to one choice public static final int choice ...
Android AsyncTask原始碼分析
android中只能在主線程中進行ui操作,如果是其它子執行緒,需要借助非同步訊息處理機制handler。除此之外,還有個非常方便的asynctask類,這個類內部封裝了handler和執行緒池。本文先簡要介紹asynctask的用法,然後分析具體實現。asynctask是乙個抽象類,我們需要建立子...