我已请求设置为用户启用的服务列表。
请求格式如下:
https://myserver.com/setservices?param1=val1¶m2=val2&service[10]&service[1000]&service[10000]
服务参数列表("服务[10]& service [1000]& service [10000]")是动态创建的,每个参数都没有价值。是否有可能使用Retrofit来实现这一目标?
答案 0 :(得分:23)
对于复杂的查询参数组合,可以使用
Map
。
@GET("/group/{id}/users")
List<User> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
我想这会成为你想要达到的目标。
答案 1 :(得分:5)
我找到了解决方法,如何做到这一点。
@GET("/setservices{services_query}")
ServicesSetResponse setServices(@EncodedPath("services_query") String servicesQuery);
然后:
getService().setServices("?param1=val1¶m2=val2" + "&services[10]&services[100000]&services[1000000]")
答案 2 :(得分:0)
我们可以使用@QueryMap 进行传递,如下所示:
GET("/movies")
Call<List<Movies>> getMovies(
@QueryMap Map<String, String> options
);
构建参数:
Map<String, String> data = new HashMap<>();
data.put("director", "Haresh");
data.put("page", String.valueOf(2));
它将生成如下网址: