改造中如何转换参数过滤器[smth] = 1

时间:2019-03-16 23:23:39

标签: retrofit retrofit2

我有来自PHP的带有参数的硬请求 &filter [type] = 1&filter [id] = 2 但我不明白如何转换这些参数?哦

1 个答案:

答案 0 :(得分:0)

我决定使用QueryMap来写答案,因为我认为这是一个可行的解决方案,而且这也是我一直在使用的解决方案。

改良版有一个名为@QueryMap的注释。顾名思义,它让您传递一个Java映射,该映射将被序列化为查询参数。我认为可以在您的示例中使用它。想象以下Retrofit界面:

interface MyApi {
  @GET(SOME_PATH)
  Call<MyModel> get(@QueryMap Map<String, String> parameters);
}

现在我们可以这样称呼它了:

HashMap parameters = new HashMap();
parameters.put("filter[type]", "1");
parameters.put("filter[id]", "2");
myApi.get(parameters);

在这里,myApi是您的api的Retrofit代理的一个实例

将会发生的是,Retrofit将根据需要序列化查询参数。