1. 程式人生 > >Android實戰——Retrofit2的使用和封裝

Android實戰——Retrofit2的使用和封裝

請求 註解 請求頭 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的使用和封裝