RetroFit 复杂查询参数
RetroFit Complex Query Parameters
我需要从 RetroFit 生成以下查询字符串。我知道我可以很容易地重复查询元素。只需要对其进行格式化,使每个元素的形式为 assessment[id][points]=parameter
//Assume Assessment contains the id and the parameter
@PUT("url")
Call putElements(@Query(???) Assessment... assessmentIds);
示例输出:
https://baseurl.com/url?assessment[id1][points]=3&assessment[id2][points]=5
在 RetroFit 中是否有一种干净的方法来完成此操作?
是的,您正在寻找 @QueryMap
您将像这样使用它:
// sender
Map<String,String> parameters = new HashMap<>();
parameters.add("assessmentid1points", "3");
parameters.add("assessmentid2points", "5");
parameters.add("key3", "value3");
yourObject.putElements(parameters);
// receiver interface
@PUT("url")
Call putElements(@QueryMap Map<String,String> parameters);
我已经写了一些关于 Retrofit 1 和 2 的教程,如果你想查看它们,here
我需要从 RetroFit 生成以下查询字符串。我知道我可以很容易地重复查询元素。只需要对其进行格式化,使每个元素的形式为 assessment[id][points]=parameter
//Assume Assessment contains the id and the parameter
@PUT("url")
Call putElements(@Query(???) Assessment... assessmentIds);
示例输出: https://baseurl.com/url?assessment[id1][points]=3&assessment[id2][points]=5
在 RetroFit 中是否有一种干净的方法来完成此操作?
是的,您正在寻找 @QueryMap
您将像这样使用它:
// sender
Map<String,String> parameters = new HashMap<>();
parameters.add("assessmentid1points", "3");
parameters.add("assessmentid2points", "5");
parameters.add("key3", "value3");
yourObject.putElements(parameters);
// receiver interface
@PUT("url")
Call putElements(@QueryMap Map<String,String> parameters);
我已经写了一些关于 Retrofit 1 和 2 的教程,如果你想查看它们,here