欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android中Retrofit的簡要介紹

 更新時間:2019年04月09日 16:51:27   作者:吉格斯實驗室  
今天小編就為大家分享一篇關(guān)于Android中Retrofit的簡要介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

Retrofit

A type-safe HTTP client for Android and Java
適用于Java和Android的安全的HTTP客戶端

Retrofit是一個可用于Android和Java的網(wǎng)絡(luò)庫,使用它可以簡化我們的網(wǎng)絡(luò)操作,提高效率和正確率。它將請求過程和底層代碼封裝起來只暴露我們業(yè)務(wù)中的請求和返回數(shù)據(jù)模型。

public interface GitHubService {
 @GET("users/{user}/repos")
 Call<List<Repo>> listRepos(@Path("user") String user);
}

@這是一個Retrofit將Rest API(服務(wù)端post或get請求)轉(zhuǎn)換為Java接口的例子

每一個由接口返回的Call對象都可以與遠(yuǎn)程web服務(wù)端進(jìn)行同步或者異步的HTTP請求通信。例如:

Call<List<Repo>> repos = service.listRepos("octocat");

為什么選擇Retrofit

AsyncHttp ,Volley和Retrofit的對比

Retrofit中的注解

Retrofit使用注解來描述HTTP請求

請求方式

每一個請求必須指定http請求相對應(yīng)的url注解和請求方式(內(nèi)置5種請求方式注解:GET、POST、PUT 、DELETE、HEAD)

@GET("users/list")

也可以將參數(shù)跟在后面

@GET("users/list?sort=desc")

URL操作

一個請求的URL的參數(shù)可以通過{}包裹快來動態(tài)替換,然后在相應(yīng)的@Path參數(shù)中進(jìn)行賦值。

@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId);

例如這個{id}在groupList請求中的@Path(“id”) int groupId來對應(yīng)賦值。

也可以使用@Query給groupList請求方法動態(tài)添加其他請求參數(shù)

@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort);

如果是比較多的請求參數(shù),我們可以使用Map來構(gòu)建

@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);

請求的Body

能夠通過@Body注解來指定一個方法作為HTTP請求主體

@POST("users/new")
Call<User> createUser(@Body User user);

這個參數(shù)對象會被Retrofit實例中的converter進(jìn)行轉(zhuǎn)化。如果沒有給Retrofit實例添加任何converter的話則只有RequestBody可以作為參數(shù)使用。

form encode 和 multipart

方法也可以通過聲明來發(fā)送form-encoded和multipart類型的數(shù)據(jù)。

可以通過@FormUrlEncoded注解方法來發(fā)送form-encoded的數(shù)據(jù)。每個鍵值對需要用@Filed來注解鍵名,隨后的對象需要提供值。

@FormUrlEncoded
@POST("user/edit")
Call<User> updateUser(@Field("first_name") String first, @Field("last_name") String last);

也可以通過@Multipart注解方法來發(fā)送Mutipart請求。每個部分需要使用@Part來注解。

@Multipart@PUT("user/photo")
Call<User> updateUser(@Part("photo") RequestBody photo, @Part("description") RequestBody description);

多個請求部分需要使用Retrofit的converter或者是自己實現(xiàn) RequestBody來處理自己內(nèi)部的數(shù)據(jù)序列化

頭部操作

可以通過使用@Headers注解來設(shè)置請求靜態(tài)頭。

@Headers("Cache-Control: max-age=640000")
@GET("widget/list")
Call<List<Widget>> widgetList();
@Headers({
  "Accept: application/vnd.github.v3.full+json",
  "User-Agent: Retrofit-Sample-App"
})
@GET("users/{username}")
Call<User> getUser(@Path("username") String username);

注意的是頭部參數(shù)并不會相互覆蓋,同一個名稱的所有頭參數(shù)都會被包含進(jìn)請求里面。

當(dāng)然你可以通過 @Header 注解來動態(tài)更新請求頭。一個相應(yīng)的參數(shù)必須提供給 @Header 注解。如果這個值是空(null)的話,那么這個頭部參數(shù)就會被忽略。否則的話, 值的 toString 方法將會被調(diào)用,并且使用調(diào)用結(jié)果。

@GET("user")
Call<User> getUser(@Header("Authorization") String authorization)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Android布局技巧之合并布局

    Android布局技巧之合并布局

    這篇文章主要為大家詳細(xì)介紹了Android布局技巧之合并布局,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android 中CheckBox多項選擇當(dāng)前的position信息提交的示例代碼

    Android 中CheckBox多項選擇當(dāng)前的position信息提交的示例代碼

    這篇文章主要介紹了Android 中CheckBox多項選擇當(dāng)前的position信息提交的示例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-07-07
  • Android原生集成RN最新版教程

    Android原生集成RN最新版教程

    這篇文章主要為大家介紹了Android原生集成RN最新版教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android開發(fā)之AAR文件的生成與使用步驟

    Android開發(fā)之AAR文件的生成與使用步驟

    Android中的aar主要是針對于Android Library而言的,可以簡單的理解為是對Android Library的打包,這個包的格式為.aar,下面這篇文章主要給大家介紹了關(guān)于Android開發(fā)之AAR文件的生成與使用步驟的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Android端代碼量非常小的分頁加載庫

    Android端代碼量非常小的分頁加載庫

    這篇文章主要給大家介紹了關(guān)于Android端代碼量非常小的分頁加載庫的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • android webview獲取html代碼和根據(jù)id獲取value實例

    android webview獲取html代碼和根據(jù)id獲取value實例

    這篇文章主要介紹了android webview獲取html代碼和根據(jù)id獲取value實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • android 復(fù)制 粘貼 剪切功能應(yīng)用

    android 復(fù)制 粘貼 剪切功能應(yīng)用

    網(wǎng)上有很多android 復(fù)制 粘貼 剪切功能的文章,只是放到自己的程序中不知道如何處理,現(xiàn)在尋得一可行方法,需要的朋友可以參考下
    2012-11-11
  • Android LitePal的使用詳解

    Android LitePal的使用詳解

    這篇文章主要介紹了Android LitePal的使用,幫助大家更好的進(jìn)行Android開發(fā),感興趣的朋友可以了解下
    2020-12-12
  • Android四大組件之Service服務(wù)詳細(xì)講解

    Android四大組件之Service服務(wù)詳細(xì)講解

    Android的服務(wù)是開發(fā)Android應(yīng)用程序的重要組成部分。不同于活動Activity,服務(wù)是在后臺運行,服務(wù)沒有接口,生命周期也與活動Activity非常不同。通過使用服務(wù)我們可以實現(xiàn)一些后臺操作,比如想從遠(yuǎn)程服務(wù)器加載一個網(wǎng)頁等,下面來看看詳細(xì)內(nèi)容,需要的朋友可以參考下
    2022-07-07
  • Android編程獲取圖片和視頻縮略圖的方法

    Android編程獲取圖片和視頻縮略圖的方法

    這篇文章主要介紹了Android編程獲取圖片和視頻縮略圖的方法,結(jié)合實例形式分析了Android圖形圖像處理所涉及的常用函數(shù)與使用技巧,需要的朋友可以參考下
    2016-04-04

最新評論