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

使用項目的原話:Android和Java中類型安全的HTTP客戶端
項目地址:https://github.com/square/retrofitgit

這裏Retrofit還須要導入它的Gson依賴庫,由於返回的數據須要Gson來處理github

一、Get請求
二、Post請求
三、單、多文件上傳安全

演示提供的接口(該接口不支持post方式)服務器

get請求(支持普通請求)網絡

get請求(支持鍵值對參數)工具

Post請求(支持鍵值對參數)post

Post請求(支持獲取返回的字符串)code

Post請求(上傳文件和參數)orm

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請求相關

理解完意思以後,編寫REST的API,其實就是請求接口,具體看下面的代碼

Retrofit和okHttp同樣,採用構造者模式建立,採用單例模式防止使用多個對象

上面代碼作了三件事

  • 綁定請求URL
  • 採用GSON來處理返回的JSON數據
  • 建立並返回REST請求API接口iServer

下面就能夠直接使用工具類拿到這個iServer,調用提供的接口方法

API接口的建立,好比說註冊功能,須要上傳兩張身份證照片,這是我本身服務器的接口

  • @PartMap:表示參數的上傳
  • @Part:表示文件列表

建立兩個方法輔助PartMap和Part的建立

到這裏,你就能夠回過頭去看下文章開頭的演示部分,那裏就是RetrofitUtils的使用

因爲文件上傳是我在作項目的時候用上的,工具類缺乏文件上傳的內容,你們能夠自行去拷貝代碼

相關文章
相關標籤/搜索