Android實戰——Retrofit2的使用和封裝
阿新 • • 發佈:2018-09-07
請求 註解 請求頭 and retrofit 內容 部分 targe json
使用項目的原話:Android和Java中類型安全的HTTP客戶端
項目地址:https://github.com/square/retrofit
這裏Retrofit還需要導入它的Gson依賴庫,因為返回的數據需要Gson來處理
1、Get請求
2、Post請求
3、單、多文件上傳
演示提供的接口(該接口不支持post方式)
get請求(支持普通請求)
get請求(支持鍵值對參數)
Post請求(支持鍵值對參數)
Post請求(支持獲取返回的字符串)
Post請求(上傳文件和參數)
Retrofit的請求是以REST請求方式發送請求的,所以工具的封裝需要做兩件事
- 對REST請求的API進行封裝
- Retrofit自身的封裝
由於我們接口返回的JSON數據如下
所以這裏需要對我們需要解析的數據進行Bean對象的封裝
Retrofit使用註解的方式來聲明GET請求、POST請求、請求參數、請求頭等進行的網絡訪問,下面是各個註解的表示的意思
-
Get請求相關
- @Get:發送Get請求
- @Query:Get請求參數
- @QueryMap:Get請求Map參數
-
Post請求相關
- @Post:發送Post請求
- @FormUrlEncoded:采用表單的方式,一般與@Post共用
- @Field:Post請求參數
- @FieldMap:Post請求Map參數
-
Header請求相關
- @Headers:發送Header信息
- @Header:Header信息參數
- @HeaderMap:Header信息的Map參數
-
Path請求相關
- @Path:訪問路徑,最終訪問BaseUrl+@Path裏面的內容中年女裝品牌
理解完意思之後,編寫REST的API,其實就是請求接口,具體看下面的代碼
Retrofit和okHttp一樣,采用構造者模式創建,采用單例模式防止使用多個對象
上面代碼做了三件事
- 綁定請求URL
- 采用GSON來處理返回的JSON數據
- 創建並返回REST請求API接口iServer
下面就可以直接使用工具類拿到這個iServer,調用提供的接口方法
API接口的創建,比如說註冊功能,需要上傳兩張身份證照片,這是我自己服務器的接口
- @PartMap:表示參數的上傳
- @Part:表示文件列表
創建兩個方法輔助PartMap和Part的創建
到這裏,你就可以回過頭去看下文章開頭的演示部分,那裏就是RetrofitUtils的使用
由於文件上傳是我在做項目的時候用上的,工具類缺少文件上傳的內容,大家可以自行去拷貝代碼
Android實戰——Retrofit2的使用和封裝