Retrofit 2.0 接口注解和常用接口方法

  1. @Get 基本注解

    @GET("blog/{id}") //這里的{id} 表示是一個變量
    Call<ResponseBody> getBlog(/** 這里的id表示的是上面的{id} */@Path("id") int id);
    
  2. @Http 全名注解

    /**
     * method 表示請求的方法驾中,區(qū)分大小寫焚鲜,retrofit 不會做處理
     * path表示路徑
     * hasBody表示是否有請求體
     */
    @HTTP(method = "GET", path = "blog/{id}", hasBody = false)
    Call<ResponseBody> getBlog(@Path("id") int id);
    
  3. @Post :

    /**
     * {@link FormUrlEncoded} 表明是一個表單格式的請求(Content-Type:application/x-www-form-urlencoded)
     * <code>Field("username")</code> 表示將后面的 <code>String name</code> 中name的取值作為 username 的值
     */
    @POST("/form")
    @FormUrlEncoded
    Call<ResponseBody> testFormUrlEncoded1(@Field("username") String name, @Field("age") int age);
    
    /**
     * Map的key作為表單的鍵
     */
    @POST("/form")
    @FormUrlEncoded
    Call<ResponseBody> testFormUrlEncoded2(@FieldMap Map<String, Object> map);
    
  4. @Headers 和 @Header

    @GET("/headers?showAll=true")
    @Headers({"CustomHeader1: customHeaderValue1", "CustomHeader2: customHeaderValue2"})
    Call<ResponseBody> testHeader(@Header("CustomHeader3") String customHeaderValue3);
    

    @Headers : 用在方法上面车摄,請求的時候添加固定的 Header 值

    @Header : 只能用在方法參數(shù)中摸柄,可以動態(tài)的傳遞 Header 參數(shù)

  5. @Query 和 @QueryMap

    /**
     * 當(dāng)GET丧靡、POST...HTTP等方法中沒有設(shè)置Url時,則必須使用 {@link Url}提供
     * 對于Query和QueryMap辣吃,如果不是String(或Map的第二個泛型參數(shù)不是String)時
     * 會被默認(rèn)會調(diào)用toString轉(zhuǎn)換成String類型
     * Url支持的類型有 okhttp3.HttpUrl, String, java.net.URI, android.net.Uri
     * {@link retrofit2.http.QueryMap} 用法和{@link retrofit2.http.FieldMap} 用法一樣蒿叠,不再說明
     */
    @GET //當(dāng)有URL注解時,這里的URL就省略了
    Call<ResponseBody> testUrlAndQuery(@Url String url, @Query("showAll") boolean showAll);
    

    當(dāng)@GET券册、POST...HTTP等注解中沒有設(shè)置Url時频轿,則必須在方法參數(shù)中使用 @Url 來提供 Url

    @Query 和 @QueryMap 會自動當(dāng)成參數(shù)來拼接 Url

  6. @Body

    @POST("blog")
    Call<Result<Blog>> createBlog(@Body Blog blog);
    

    當(dāng)參數(shù)比較多的時候,一種是使用 @FieldMap 注解汁掠,一種是使用 @Body 傳遞一個對象略吨,當(dāng)對象作為參數(shù)的時候,需要在 Retrofit 配置一個轉(zhuǎn)換器考阱,例如下面,這樣就會自動把這個對象進(jìn)行一次轉(zhuǎn)換放到 request 的 body 里傳過去

    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://localhost:4567/")
            //可以接收自定義的Gson鞠苟,當(dāng)然也可以不傳
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build();
    

    ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末乞榨,一起剝皮案震驚了整個濱河市秽之,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吃既,老刑警劉巖考榨,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鹦倚,居然都是意外死亡河质,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門震叙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掀鹅,“玉大人,你說我怎么就攤上這事媒楼±肿穑” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵划址,是天一觀的道長扔嵌。 經(jīng)常有香客問我,道長夺颤,這世上最難降的妖魔是什么痢缎? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮世澜,結(jié)果婚禮上独旷,老公的妹妹穿的比我還像新娘。我一直安慰自己宜狐,他們只是感情好势告,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抚恒,像睡著了一般咱台。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上俭驮,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天回溺,我揣著相機(jī)與錄音,去河邊找鬼混萝。 笑死遗遵,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逸嘀。 我是一名探鬼主播车要,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼崭倘!你這毒婦竟也來了翼岁?” 一聲冷哼從身側(cè)響起类垫,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎琅坡,沒想到半個月后悉患,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡榆俺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年售躁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茴晋。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡陪捷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晃跺,到底是詐尸還是另有隱情揩局,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布掀虎,位于F島的核電站凌盯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏烹玉。R本人自食惡果不足惜驰怎,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望二打。 院中可真熱鬧县忌,春花似錦、人聲如沸继效。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瑞信。三九已至厉颤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凡简,已是汗流浹背逼友。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留秤涩,地道東北人帜乞。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像筐眷,于是被迫代替她去往敵國和親黎烈。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 寫在前面 本篇文章基于retrofit-2.1進(jìn)行分析. 1. 各個注解的含義及使用 1.1 Body注解: 作用...
    NeWolf閱讀 1,493評論 0 1
  • 是Square公司開發(fā)的一款針對Android網(wǎng)絡(luò)請求的框架,Retrofit2底層基于OkHttp實現(xiàn)的怨喘,現(xiàn)在已...
    Android開發(fā)__落岑閱讀 1,809評論 0 2
  • 安卓開發(fā)領(lǐng)域中津畸,很多重要的問題都有很好的開源解決方案振定,例如Square公司提供網(wǎng)絡(luò)請求 OkHttp , Retr...
    aaron688閱讀 1,919評論 1 20
  • Android 網(wǎng)路請求框架 一必怜、RetrofitService 詳細(xì)方法 1.retrofit注解 方法注解:@...
    Demon鑫閱讀 452評論 0 3
  • 前一陣子《羋月傳》火了整個熒屏梳庆,不少女觀眾都鐘情于黃歇這個情話boy,“月兒是好看的”卑惜、“月兒就是子歇的性命”膏执、“...
    有寵閱讀 337評論 0 0