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

來源:互聯網
上載者:User

標籤:模式   post請求   res   serve   缺少檔案   href   form   理解   多個   

使用項目的原話: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:訪問路徑,最終訪問[email protected]裡面的內容中年女裝品牌

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

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

上面代碼做了三件事

  • 綁定請求URL
  • 採用GSON來處理返回的JSON資料
  • 建立並返回REST請求API介面iServer

下面就可以直接使用工具類拿到這個iServer,調用提供的介面方法

API介面的建立,比如說註冊功能,需要上傳兩張身份證照片,這是我自己伺服器的介面

  • @PartMap:表示參數的上傳
  • @Part:表示檔案清單

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

到這裡,你就可以回過頭去看下文章開頭的示範部分,那裡就是RetrofitUtils的使用

由於檔案上傳是我在做項目的時候用上的,工具類缺少檔案上傳的內容,大家可以自行去拷貝代碼

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.