天天看點

RxVolley使用文檔 —— RxVolley = Volley + RxJava + OkHttpRxVolley使用文檔 —— RxVolley = Volley + RxJava + OkHttp

偶然有幸,看到這個架構,便深深的愛上了這個架構,趕緊轉載一發到自己的部落格上溫故而知新,而且作者一開頭,就來了這麼一句:
看到這句,我嘴角勾起了一抹微笑,嘿嘿,我也很喜歡Volley呀,而網上二次封裝的Volley庫,感覺不是那麼的盡人意,而自己封裝的,也隻夠自己在項目中使用罷了!我們先來看下他的Github位址:
而我們的這篇博文是參照他的中文文檔來的,我純屬搬運工
RxVolley是一個基于Volley的網絡請求庫;同時支援RxJava;可以選擇使用OKHttp替代預設的 HttpUrlConnection 做網絡請求;可以選擇使用圖檔加載功能(複用的網絡請求将有效減少apk體積);移除了原Volley的 HttpClient 相關 API ,可在 API23 環境編譯;内置了RxBus的實作,可有效替換掉EventBus等相關庫;
使用RxVolley,需要在你的build.gradle檔案中加入
如果你還想使用OKhttp來替代預設的HttpUrlconnection,需要加入
如果你想使用RxVolley的圖檔加載功能(複用http子產品可以有效減少apk大小),需要加入
使用 RxVolley 做網絡請求
比起 入門 章節講述的網絡請求,你可能希望有更多的需求
RxVolley 支援傳回一個 Observable 類型的資料,如下是 Result 類的原型
執行一次請求,并傳回 Observable
完整的使用示例
也許你是 Volley 的重度使用者(就像我),那麼你一定是因為 Volley 自由的擴充性而愛上它的。 你可以通過建立一個Request
去執行你的自定義 Request 一個典型自定義Request的示例:
利用 RxVolley 的自定義請求,在庫中内置了檔案下載下傳功能。你可以使用
download()原型 既然說了下載下傳功能是利用 RxVolley 的自定義請求建立的,不妨看看他的方法實作:
理論上來說,一切的請求設定都可以通過自定義 Request 來完成。 但是,如果你和我一樣是個懶人,當然更希望這些早就有人已經做好了。

設定檔案緩存的路徑

預設的檔案緩存路徑是在SD卡根目錄的 /RxVolley 檔案夾下,你可以通過如下語句設定你的 cacheFolder
需要注意的是,setRequestQueue 方法必須在 RxVolley.Build() 方法執行之前調用,也就是在使用 RxVolley 以前先設定配置資訊。建議在 Application 類中完成這些設定。

Https設定

如果不設定,預設信任全部的https證書。可以傳入自定義 SSLSocketFactory
一個自定義設定SSLSocketFactory的相關示例:

Build()中的可選設定

詳細請參閱 RxVolley$Builder 類中代碼。
RxVolley 預設對于 cookie 的操作是會從 HttpCallback 中傳回 cookie,需要手動儲存到本地。 如果你希望架構能夠自動存儲 cookie,可以這麼做: 按需要選擇繼承FormRequest或者JsonRequest (直接繼承 Request 類也可以,但是複雜) 并重寫
邏輯如上述代碼,其中的map即包含了伺服器傳回的cookie,可以做你自己的操作了。 最終執行你的自定義 Request
在傳遞 Cookie 作為請求頭的時候,建議寫一個工具類,例如
Volley 允許你建立自己的網絡請求執行器,執行器需要實作IHttpStack接口 RxVolley 的 okhttp module 已經有了使用 OkHttp 作為請求執行器的實作。 你可以使用如下代碼設定,依舊需要注意的是,setRequestQueue 方法必須在 RxVolley.Build() 方法執行之前調用,也就是在使用 RxVolley 以前先設定配置資訊。建議在 Application 類中完成這些設定。
使用 OkHttp 相關功能需要在你的 build.gradle 檔案中加入

<a href="https://github.com/kymjs/RxVolley/issues">https://github.com/kymjs/RxVolley/issues</a>

使用過程中如果有什麼好的建議歡迎回報給原作者 再次聲明哈,我特别喜歡這個架構,在我部落格上釋出,如果有侵權行為,請告知我删除!