iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0

Retrofit是Square公司開發的一款針對Android網路請求的框架,遵循Restful設計風格,底層基於OkHttp。

功能:

  • 支持同步/異步網路請求。
  • 支持多種數據的解析&序列化格式(Gson、json、XML等)
  • 通過註解配置網路請求參數
  • 支持RxJava
  • 高度解偶,使用方便

環境設置

1. 添加依賴

build.gradle(Module)

dependencies {
    ...
    implementation `com.squareup.retrofit2:retrofit:2.9.0`
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation `com.squareup.retrofit2:converter-scalars:2.9.0`
    // Retrofit如需對RxJava的支持, 需要添加此依賴
    implementation "com.squareup.retrofit2:adapter-rxjava3:2.9.0"
    ...
} 

2. 添加網路權限

AndroidManifest.xml

<uses-permission android:name="android.permission.INTERNET"/>

如何使用

步驟:

  1. 創建伺服器返回值對應的數據類
  2. 創建伺服器請求對應的API接口
  3. 創建Retrofit實例
  4. 創建網路請求接口實例
  5. 發送網路請求(同步/異步)
  6. 處理返回數據

創建伺服器返回值對應的數據類

創建Api對應的方法

將HTTP API轉換為Java接口。
ApiService.java

public interface ApiService {
    @GET("/user/info")
    Call<String> requestInfo();
}

常用註解:

  • 網路請求方法:@GET@POST@PUT@DELETE
  • 網路請求標記:@FormUrlEncoded@Multipart@Streaming
  • 網路請求參數:@Header@Headers@Body@Field@FieldMap@Part@PartMap@Query@QueryMap@Path@Url
  • 透過Retrofit.Builder()實現接口
Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https:/api.github.com/") // 設置網路請求的公共URL地址
    .addConverterFactory(GsonConverterFactory.create()) // 設置數據解析器
    .addCallAdapterFactory(RxJavaCallAdapter.Factory.create()) // 支持RxJava功能
    .build();

ApiService service = retrofit.create(ApiService.class);

上一篇
Day19 - DataBinding | Android Jetpack
下一篇
Day21 - Retrofit + RxJava
系列文
Android 開發 30天 初學之路筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言