【发布时间】:2015-01-14 21:52:18
【问题描述】:
我正在使用@FormUrlEncoded 执行@POST 操作,因为我要访问的 API 需要 HTTP 参数作为输入。
目标 API 期望看到的参数应该类似于(简化):
alist[0][object1]=1&alist[0][object2]=astring&alist[1][object1]=2&alist[2][object2]=bstring
JsonIzed(为了清楚起见)看起来像:
{
"alist": [
{
"object1" : "1",
"object2" : "astring"
},
{
"object1" : "2",
"object2" : "bstring"
}
]
}
所以本质上,alist[0][object1] 是 1,alist[0][object2] 是“astring”。
我得到的最接近的是使用@FieldMap:
...
@FieldMap Map<String,String> myFieldMap
...
我有这样的事情:
@FormUrlEncoded
@Post("/somewhere")
SearchHandle search(@FieldMap Map<String, String> myMap);
这让我很感动:
{
"alist": {
"0" : {
"object1" : "1",
"object2" : "astring"
},
"1" : {
"object1" : "2",
"object2" : "bstring"
}
}
}
这很接近 - 但 API 需要一个数组。所以我需要一个......究竟是什么?有什么想法吗?
【问题讨论】:
标签: java forms retrofit url-parameters