将List序列化为查询参数的最简洁方法是什么?目前,我的序列化变为:
...search?items[]=this&items[]=cat&items[]=cookie...
我需要的是上面的内容,但没有括号。我认为Gson可能有办法做到这一点,但我不确定。
更新
一个重要的事情是,这是一个动态的List
需要发布,而不仅仅是个人参数。
答案 0 :(得分:0)
您需要以这种方式在界面中定义您的方法:
@GET("query")
myMethod(@Query("items") String items)
这就是你应该称之为的方式:
ArrayList<String> list = new ArrayList<String>();
list.add("Item 1");
list.add("Item 2");
list.add("Item 3");
String items = "";
for (String s : list){
items += s + ",";
}
api.query(items);
答案 1 :(得分:0)
对于动态列表,您可能希望使用@QueryMap
@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
答案 2 :(得分:-1)
您可以在Retrofit的官方文档中看到此示例 http://square.github.io/retrofit/
您必须使用注释@Query注释方法的每个参数。
@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort);
我希望它对你有所帮助。