Retrofit網絡請求參數註解 @Query 和@Path的區別

        在研究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);

很多情況下我們可能會使用第二種情況,但也需要了解第一種樣式的使用,僅作備份,以防忘記!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章