Retrofit2中的查询

时间:2019-02-19 09:12:59

标签: android retrofit

我正在使用改造GET方法。如何向它传递query参数?

@GET("/datas/")
Call<List<Data>> getDataInfo();

4 个答案:

答案 0 :(得分:2)

如果您只想发送一个或两个参数,则以上答案将是合适的;如果要发送多个参数,则可以像下面这样发送它-

@GET("/datas/")
Call<List<Data>> getDataInfo(@QueryMap HashMap<String, String> params);

然后将数据放入哈希图中,如下所示-

 HashMap<String, String> params = new HashMap<>();
        params.put("data1", "abc");
        params.put("data2", "50");

答案 1 :(得分:0)

使用以下代码传递查询参数。

@GET("YOUR_URL")
 Call<List<Data>> getDataInfo(@Query("YOUR_KEY") String your_data);

答案 2 :(得分:0)

尝试一下,使用“驱动程序”代替“ / drivers /”

@GET("drivers")
Call<List<Data>> getDataInfo(@Query("data_id") int dtaID);

答案 3 :(得分:0)

在Retrofit中,使用api如下:

GET方法(带有参数):

@GET("doctor_review.php")
Call<DoctorReview> getreview(@Query("doctor_id") String Id);

POST方法(带有参数):

@FormUrlEncoded
@POST("update_doctor_status.php")
Call<UpdateDoctorStatus> updateDoctorStatus(@Field("user_id") String doctor_id, @Field("status") String status, @Field("type") String type);

以json对象为主体的POST方法:

@POST("SocialLogin")
Call<LoginResponse> socialLogin(@Body JsonObject body);

// take below object as reference that will be passed in above post api as body
JsonObject jsonObjectLogin = new JsonObject();
    jsonObjectLogin.addProperty("email", profileEmail);
    jsonObjectLogin.addProperty("password", password);
    jsonObjectLogin.addProperty("deviceToken", refreshedToken);
    jsonObjectLogin.addProperty("Timezone", Utility.getTimeZone());