Retrofit with QueryMap(使用QueryMap进行改造)
问题描述
我有一些具有相同终结点的请求,但参数和返回类型不同。
我为参数使用了@QueryMap
,但我不知道如何编写返回类型:
我必须写:
@GET("xxx")
Call<List<A1>> groupList1(@QueryMap Map<String, String> options);
@GET("xxx")
Call<List<A2>> groupList2(@QueryMap Map<String, String> options);
@GET("xxx")
Call<List<A3>> groupList3(@QueryMap Map<String, String> options);
....
还是有更短的解决方案?
推荐答案
您可以使用JsonElement
响应类型
@GET("xxx")
Call<JsonElement> groupList(@QueryMap Map<String, String> options);
您将收到的每个呼叫JsonElement
,您可以将其转换为JsonObject
或JsonArray
,甚至String
。您可以根据您的内容对其进行解析/取消具体化
public void onResponse(Call<JsonElement> call, Response<JsonElement> response) {
JsonElement jsonElement = response.body();
//JsonArray array = jsonElement.getAsJsonArray();
//JsonObject Obj = jsonElement .getAsJsonObject();
}
这篇关于使用QueryMap进行改造的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!