android - 如何在 Retrofit 2 中为请求使用注释?
问题描述
我有一个用于请求 URL 的 APIService 类。
我想将“/products?page=1”设置为注释@GET,但我希望我可以更改参数和值。
这是我的 APIService 类:
public interface APIService {
@GET("products?{parameter}={value}")
Call<List<DataModelProducts>> getProducts(@Path("parameter") String parameter,@Path("value") String value);
}
如何更改我的应用程序中的“参数”和“值”?
解决方案
@Query
我相信使用如下注释就足够了:
@GET("group/{id}/users/list")
Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort);
它将创建一个请求,例如:.../users/list?sort=desc
或者,如果您希望能够同时更改上述示例请求的排序/降序,您可以使用@QueryMap
:
@GET("group/{id}/users/list")
Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
这将创建一个请求,例如:.../users/list?key=value
其中键/值在Map<String, String> options
有关 Retrofit2 的不同注释的更多信息,您可以访问 Retrofit API 声明
推荐阅读
- python - update() 不会触发paintEvent()
- matlab - MatLab :: 假设并找到不等式的不同可能未知变量,
- html - 如何调整表格大小并在页面上居中,并自动调整大小?
- android - 单击另一个控件时应用 EditText 更改
- scala - 必须设置 Ignite 实例名称 thread local 否则应在 org.apache.ignite.thread.IgniteThread 下访问此方法
- spring-boot - 使用 Spring Boot 实现管道设计模式
- android - Gradle 同步因“UnhandledIsstesReporter”而失败
- python - 如何计算具有特定条件的列表中的元素
- r - 当 plot.margin 存在 ggplot2 时,标题右对齐
- javascript - 在 azure 函数内发出 https 请求