將List序列化爲查詢參數的最簡潔方法是什麼?目前,我的序列化成爲:在Android Retrofit中,如何序列化GET請求查詢的列表?
...search?items[]=this&items[]=cat&items[]=cookie...
我需要的是以上,但沒有括號。我想Gson可能有辦法做到這一點,但我不確定。
UPDATE: 一個重要的事情是,這是一個動態的List
需要被髮布,而不僅僅是單個PARAMS。
將List序列化爲查詢參數的最簡潔方法是什麼?目前,我的序列化成爲:在Android Retrofit中,如何序列化GET請求查詢的列表?
...search?items[]=this&items[]=cat&items[]=cookie...
我需要的是以上,但沒有括號。我想Gson可能有辦法做到這一點,但我不確定。
UPDATE: 一個重要的事情是,這是一個動態的List
需要被髮布,而不僅僅是單個PARAMS。
對於動態列表,你可能會想使用@QueryMap
@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
你可以看到這個例子是你必須註釋你的方法與註釋@Query的每個參數改造 http://square.github.io/retrofit/
的官方文檔。
@GET("group/{id}/users")
Call<List<User>> groupList(@Path("id") int groupId, @Query("sort") String sort);
我希望它可以幫助你。
你需要這樣定義你的方法在你的接口:
@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);