用两个多维数组改造POST,如何发送?

时间:2015-03-25 07:50:11

标签: retrofit

我有这个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 [] [量]“

1 个答案:

答案 0 :(得分:0)

使用@QueryMap。它就像一个HashMap。来自retrofit documentation,我们有:

  

对于复杂的查询参数组合,可以使用Map。

@GET("/group/{id}/users")
List<User> groupList(@QueryMap Map<String, String> options);

因此,在您的情况下,地图的键将是id,值将是数量。