写在前面: 本文是我看到Retrofit官方推荐的一个Retrofit技术文档,感觉收益匪浅,特此想把文档翻译一下,大家一起学习。
原文地址:https://futurestud.io/tutorials/retrofit-getting-started-and-android-client
查询参数
查询参数是从客户端向服务端传递数据的一个最平常的方式。先来一个例子来展示请求一个id=123的具体的任务。
https://api.example.com/tasks?id=123
返回的只是id为123的任务。
public interface TaskService {
@GET("/tasks")
Call<Task> getTask(@Query("id") long taskId);
}
方法getTask需要taskid。这个参数会被retrofit匹配到@Query()里的参数中,在这个例子中,这个参数名是id,因此最终的结果是
/tasks?id=<taskId>
多值查询
一些用例需要为同一个参数传递多个值,以上一个请求任务为例,我们能申请多个任务响应。
请求url可以如下所示:
https://api.example.com/tasks?id=123&id=124&id=125
响应结果应该是id=[123,124,125]的任务集合。
Retrofit方法处理多参数查询是上传多个id作为参数。
public interface TaskService {
@GET("/tasks")
Call<List<Task>> getTask(@Query("id") List<Long> taskIds);
}