【发布时间】:2016-07-28 08:12:27
【问题描述】:
我计划使用 Retrofit 制作一个通用服务类,
@GET
Call<ResponseBody> makeGetRequest(@Url String url);
@POST
Call<ResponseBody> makePostRequest(@Url String url, @Body RequestBody parameters);
在这段代码中,我需要将 (ResponseBody) 作为动态 JSON POJO 类名传递,例如 LoginRes
举个例子,
Call<LoginRes> // But this class will be dynamic
我会通过 ResponseBody 但那个 ResponseBody 不知道我想要哪个类。
为什么我想要这个,因为在结果之后
gson.fromJson(response, LoginRes.class);
所以,在得到 Retrofit 的结果后,我们需要再次转换为 gson.fromJson。
所以我想将动态响应作为 Retrofit 传递,以便它根据我的 pojo 类进行响应,
我知道当我通过 LoginRes 而不是 ResponseBody 时这工作正常,因为正如我已经告诉 Response 我们需要在 LoginRes 中的响应。
如果我通过了
Call<LoginRes> // if i pass this way its working fine no need to convert my response i can access my all properties from that LoginRes class directly.
这是我调用 Web 服务的示例。
Call<ResponseBody> call = apiService.makePostRequest("/Buyer/LoginApp", requestBody);
这就是我调用服务的方式。
如果我对我的问题的解释不清楚,请告诉我。
等待一些好的回应和建议。
谢谢 马达夫
【问题讨论】:
-
那么您想要拥有可以将 JSON 响应转换为各种可能完全不相关的类的相同功能吗?
-
实际上,如果我可以通过 ResponseBody
动态或其他方式传递.. 我需要关于此的建议。
标签: java android android-studio retrofit retrofit2