在研究retrofit時,發現了一個問題,就是傳參數的方式有很多種,我們需要根據後臺接口的不同來確定對應的傳參方式。
首先我們初始化Retrofit:
String BASE_URL = "http://192.168.0.1/api/";
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.build();
後臺給出的接口一般會有兩種形式:
1、樣式1(URL中有參數):
http://192.168.0.1/api/data/1
http://192.168.0.1/api/data/{數據id}
http://102.10.10.132/api/data/1/頁碼1
http://102.10.10.132/api/data/{數據id}/{頁碼}
這種情況可以理解爲參數和接口地址在一起,而我們在使用Retrofit去請求的時候,參數註解就需要使用@Path,具體代碼如下:
@GET("data/{sid}/{page}")
Call<DataBean> getItem(@Path("sid") String sid, @Path("page") String page);
2、樣式2(參數在URL問號之後):
http://192.168.0.1/api/data?sid=1
http://192.168.0.1/api/data?sid={數據id}
http://102.10.10.132/api/data?sid=1&page=1
http://102.10.10.132/api/data?sid={數據id}&page={頁碼}
這種情況就是很常見的請求地址了,就是參數放在?後面,且多個參數用&隔開,我們在使用Retrofit去請求的時候,參數註解就需要使用@Query,具體代碼如下:
@GET("data")
Call<DataBean> getItem(@Query("sid") String sid, @Query("page") String page);
很多情況下我們可能會使用第二種情況,但也需要了解第一種樣式的使用,僅作備份,以防忘記!