Andrroid
開發中,網絡請求十分經常使用Android
網絡請求庫中,Retrofit
是當下最熱的一個網絡請求庫Retrofit v2.0
的使用教程,但願大家會喜歡。特別注意:java
OkHttp
完成,而 Retrofit 僅負責 網絡請求接口的封裝除了Retrofit,現在Android中主流的網絡請求框架有:android
下面是簡單介紹:git
一圖讓你瞭解所有的網絡請求庫和他們之間的區別!github
附:各個主流網絡請求庫的Github地址服務器
使用 Retrofit 的步驟共有7個:網絡
步驟1:添加Retrofit庫的依賴
步驟2:建立 接收服務器返回數據 的類
步驟3:建立 用於描述網絡請求 的接口
步驟4:建立 Retrofit 實例
步驟5:建立 網絡請求接口實例 並 配置網絡請求參數
步驟6:發送網絡請求(異步 / 同步)框架
步驟7: 處理服務器返回的數據異步
接下來,咱們一步步進行講解。async
1. 在 Gradle
加入Retrofit
庫的依賴oop
build.gradle
2. 添加 網絡權限
AndroidManifest.xml
Reception.java
GetRequest_Interface.interface
下面詳細介紹Retrofit 網絡請求接口 的註解類型。
第一類:網絡請求方法
詳細說明:
a. @GET、@POST、@PUT、@DELETE、@HEAD
以上方法分別對應 HTTP中的網絡請求方式
此處特地說明URL的組成:Retrofit把 網絡請求的URL 分紅了兩部分設置:
b. @HTTP
a. @FormUrlEncoded
b. @Multipart
a. @Header & @Headers
b. @Body
Post
方式 傳遞 自定義數據類型 給服務器@Field
c. @Field & @FieldMap
@FormUrlEncoded
註解配合使用d. @Part & @PartMap
做用:發送 Post請求 時提交請求的表單字段
具體使用:與 @Multipart
註解配合使用
e. @Query和@QueryMap
做用:用於 @GET
方法的查詢參數(Query = Url 中 ‘?’ 後面的 key-value)
具體使用:配置時只須要在接口方法中增長一個參數便可:
f. @Path
g. @Url
數據解析器 | Gradle依賴 |
---|---|
Gson | com.squareup.retrofit2:converter-gson:2.0.2 |
Jackson | com.squareup.retrofit2:converter-jackson:2.0.2 |
Simple XML | com.squareup.retrofit2:converter-simplexml:2.0.2 |
Protobuf | com.squareup.retrofit2:converter-protobuf:2.0.2 |
Moshi | com.squareup.retrofit2:converter-moshi:2.0.2 |
Wire | com.squareup.retrofit2:converter-wire:2.0.2 |
Scalars | com.squareup.retrofit2:converter-scalars:2.0.2 |
網絡請求適配器 | Gradle依賴 |
---|---|
guava | com.squareup.retrofit2:adapter-guava:2.0.2 |
Java8 | com.squareup.retrofit2:adapter-java8:2.0.2 |
rxjava | com.squareup.retrofit2:adapter-rxjava:2.0.2 |
經過response
類的 body()
對返回的數據進行處理
接下來,我將用兩個實例分別對 Retrofit GET方式 和 POST方式進行 網絡請求 講解。
Get
方法對 金山詞霸API 發送網絡請求
步驟1:添加Retrofit庫的依賴
步驟2:建立 接收服務器返回數據 的類
步驟3:建立 用於描述網絡請求 的接口
步驟4:建立 Retrofit 實例
步驟5:建立 網絡請求接口實例 並 配置網絡請求參數
步驟6:發送網絡請求(採用最經常使用的異步方式)
步驟7: 處理服務器返回的數據
接下來,咱們一步步進行講解。
1. 在 Gradle
加入Retrofit
庫的依賴
build.gradle
2. 添加 網絡權限
AndroidManifest.xml
Translation.java
採用 註解 描述 網絡請求參數。
GetRequest_Interface.java
步驟4:建立Retrofit對象
步驟5:建立 網絡請求接口 的實例
步驟6:發送網絡請求
步驟7:處理返回數據
GetRequest.java
因爲此處採用了 Gson 解析,因此須要在 Gradle加入依賴
build.gradle
Carson_Ho的Github:https://github.com/Carson-Ho/RetrofitDemo
Post方法
對 有道API 發送網絡請求
步驟1:添加Retrofit庫的依賴
步驟2:建立 接收服務器返回數據 的類
步驟3:建立 用於描述網絡請求 的接口
步驟4:建立 Retrofit 實例
步驟5:建立 網絡請求接口實例 並 配置網絡請求參數
步驟6:發送網絡請求(採用最經常使用的異步方式)
步驟7: 處理服務器返回的數據
接下來,咱們一步步進行Retrofit的使用。
1. 在 Gradle
加入Retrofit
庫的依賴
build.gradle
2. 添加 網絡權限
AndroidManifest.xml
Translation.java
採用 註解 描述 網絡請求參數。
PostRequest_Interface.java
步驟4:建立Retrofit對象
步驟5:建立 網絡請求接口 的實例
步驟6:發送網絡請求
步驟7:處理返回數據
PostRequest.java
因爲此處採用了 Gson 解析,因此須要在 Gradle
加入依賴
build.gradle
Carson_Ho的Github:https://github.com/Carson-Ho/RetrofitDemo
RxJava
和Prototocobuff
具體關於 RxJava
的使用這裏就不展開,請期待下篇關於 Rxjava
的文章。
Retrofit 2.0
的使用Retrofit 2.0
的源碼,請看我寫的文章:Android:手把手帶你深刻剖析 Retrofit 2.0 源碼