我有这个API,我需要发送一些数据,如下所示:
www.abc.com/orders/new?items[][id]=1001&items[][quantity]=2
所以我必须传入这些数组
items[][id]=1001
items[][quantity]=2
如果有多个项目,则应该如下所示
items[][id]=1001 & items[][quantity]=2
& items[][id]=1002 & items[][quantity]=3
所以这就是我遇到的问题,因为我知道@Query可以接受数组但是排列需要首先是id元素然后是数量元素。我不能先拥有所有的ID,然后是数量,这就是发生的事情。
@POST("/orders/new")
void send(@Query("items[][id]") String...ids, @Query("items[][quantity") String...quantity)
请注意,为简单起见,我省略了回调。
我还尝试过列表,其中整个列表包含正确排列中所有需要的信息,但后来出现的问题是只有一个@Query注释,即“items [] [id]”和“items [] [量]“
答案 0 :(得分:0)
使用@QueryMap
。它就像一个HashMap。来自retrofit documentation,我们有:
对于复杂的查询参数组合,可以使用Map。
@GET("/group/{id}/users")
List<User> groupList(@QueryMap Map<String, String> options);
因此,在您的情况下,地图的键将是id,值将是数量。