Retrofit+Rxjava網絡請求,精簡詳細版

在閒暇時間擼了這段代碼,其實早就有這種想法了,奈何自己太懶,一直拖到現在,還請各位老鐵見諒。寫這個也算是自己在工作中的一些總結。踩了很多坑,希望對老鐵們有所幫助,話不多說,開整!

本篇主要包含POST、GET請求,不同的傳參方式,以及上傳單文件(單圖)、多文件(多圖)、數組,以及添加簽名、公共參數等。這裏不談原理,只談使用~

app的build文件中配置

獲取頭像 

1.1 map方式

 需要注意map方式要添加@Multipart和@PartMap

map是參數的集合,需要上傳的參數根據定義的map來上傳多個參數。

Constant.BASE_URL:baseUrl,這裏說明一下,baseurl要以“/”結尾,不然會出錯

其中onSubscribe():方法可忽略,也可添加加載框 

onNext():方法是請求接口併成功返回後執行的,在這裏進行回調後的操作

onError():方法是錯誤返回,可能會出現json解析錯誤,404等錯誤

onComplete():是請求完成後執行的方法,這裏可以關閉加載框

MeBean:是後臺返回json的實體類(具體參考demo)

1.2 get請求 

 需要注意GET對應參數要以@Field形式

freeweather是baseUrl後面需要拼接的最後一段,在之後就是具體需要上傳的參數了,如下圖

1.3 post請求  

需要注意POST要添加@FormUrlEncoded對應參數要以@Field形式

1.4 上傳數組/集合

需要注意數組參數後面一定要加"[ ]"

1.5 上傳圖片(單張)

map是一起上傳的其他參數,如uid、token等

file是上傳的文件

具體的操作流程,如下圖。至於怎麼選擇圖片文件,demo中也有方法,需要了解的親,可以在demo中查看

1.6 上傳圖片(多張)

和上面上傳單張圖片幾乎一樣,只是上傳多張圖片的files換成了List<>形式。上傳多圖的方式,其實就是把選擇的圖片進行了遍歷,如下圖

“add_pics[]” 這個參數名,是後臺定義的參數名,注意參數名後面也要添加"[ ]"

2.1 添加公共參數

在HttpManager裏的getApiService()中放開addInterceptor(new AddQueryParameterInterceptor()),然後添加公共參數即可

formBody的addEncoded()中添加簽名和公共參數 (key,value)形式

2.2 日誌打印

“我是如圖”中所示,log()中的message是後臺返回的json,在這裏可以查看後臺返回的參數,以及錯誤日誌

2.3 超時設置

有些時候可能需要設置網絡連接時間,在“我是如圖”中的client中,設置網絡請求超時時間

總結

demo中涵蓋了日常用到的幾乎所有請求方式,如果還有其他疑問可添加筆者QQ:499164592,備註簡書即可。

如果對Retrofit的使用不太懂的話,可自行百度,祝君學習愉快

項目中應用到的三方庫superTextView ,XPopup,PictureSelector 可參考demo中的鏈接

最後附上demo鏈接Retrofit+Rxjava-Network

感謝老鐵們的批閱,祝大家漲薪不光頭,脫單不再愁,2020新年快樂!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章