-
@Get 基本注解
@GET("blog/{id}") //這里的{id} 表示是一個變量 Call<ResponseBody> getBlog(/** 這里的id表示的是上面的{id} */@Path("id") int id);
-
@Http 全名注解
/** * method 表示請求的方法驾中,區(qū)分大小寫焚鲜,retrofit 不會做處理 * path表示路徑 * hasBody表示是否有請求體 */ @HTTP(method = "GET", path = "blog/{id}", hasBody = false) Call<ResponseBody> getBlog(@Path("id") int id);
-
@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);
-
@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ù)
-
@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
-
@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();
?
Retrofit 2.0 接口注解和常用接口方法
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門震叙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掀鹅,“玉大人,你說我怎么就攤上這事媒楼±肿穑” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵划址,是天一觀的道長扔嵌。 經(jīng)常有香客問我,道長夺颤,這世上最難降的妖魔是什么痢缎? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮世澜,結(jié)果婚禮上独旷,老公的妹妹穿的比我還像新娘。我一直安慰自己宜狐,他們只是感情好势告,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抚恒,像睡著了一般咱台。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上俭驮,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼崭倘!你這毒婦竟也來了翼岁?” 一聲冷哼從身側(cè)響起类垫,我...
- 正文 年R本政府宣布掀虎,位于F島的核電站凌盯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏烹玉。R本人自食惡果不足惜驰怎,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望二打。 院中可真熱鬧县忌,春花似錦、人聲如沸继效。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽瑞信。三九已至厉颤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凡简,已是汗流浹背逼友。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 寫在前面 本篇文章基于retrofit-2.1進(jìn)行分析. 1. 各個注解的含義及使用 1.1 Body注解: 作用...
- 是Square公司開發(fā)的一款針對Android網(wǎng)絡(luò)請求的框架,Retrofit2底層基于OkHttp實現(xiàn)的怨喘,現(xiàn)在已...
- 安卓開發(fā)領(lǐng)域中津畸,很多重要的問題都有很好的開源解決方案振定,例如Square公司提供網(wǎng)絡(luò)請求 OkHttp , Retr...
- Android 網(wǎng)路請求框架 一必怜、RetrofitService 詳細(xì)方法 1.retrofit注解 方法注解:@...