Retrofit——A type-safe HTTP client for Android and Java(The first part)

來源:互聯網
上載者:User

標籤:


一,介紹
   Retrofit將你的http介面API轉換成項目中的一個java的介面。
public interface GitHubService {  @GET("users/{user}/repos")  Call<List<Repo>> listRepos(@Path("user") String user);}


  Retrofit會自動為上面的Service產生一個實作類別。

Retrofit retrofit = new Retrofit.Builder()    .baseUrl("https://api.github.com/")    .build();GitHubService service = retrofit.create(GitHubService.class);

   每次調用的時候,建立的介面的實作類別會產生一個非同步或者同步的http請求到遠端web伺服器上面。
Call<List<Repo>> repos = service.listRepos("octocat");

  使用註解的方式來描述http請求:      1,支援url參數和查詢參數      2,對象轉換成請求體,即對json對象的支援      3,多種請求體,檔案等也支援(翻譯的好土氣呀。。。)
二,API聲明
     使用介面上的方法註解和請求參數來說明一個請求時如何被處理的。
三,要求方法
      每個方法都必須有一個http註解來提供請求請求和相關聯的URL。這裡有五種支援的註解形式:GET,POST,PUT,DLETE,HEAD。相關的請求URL放在請求註解中。  
@GET("users/list")


    同時,你也可以直接在URL中提供請求參數:
@GET("users/list?sort=desc")

四,URL操作

  請求參數能被動態更新---by方法中的預留位置。一個請求塊是用’{}‘——這個符號包圍的。一個對應的參數必須被@Path註解,並且使用相同的參數名字。


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

請求參數也能被添加:


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

例如,下面使用一個map來做栗子:


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



    翻譯了一部分,感覺上面的東西好像是外星人寫的。。。寶寶會繼續更的!希望能忍著翻譯完,更希望看過的人不要打我。














Retrofit——A type-safe HTTP client for Android and Java(The first part)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.