【发布时间】:2014-12-20 17:24:55
【问题描述】:
在异步模式下改造调用
public void success(T t, Response rawResponse)
t 是转换后的响应,而 rawResponse 是原始响应。这使您可以访问原始响应和转换后的响应。
在同步模式下,您可以获得转换后的响应或原始响应
转换的响应
@GET("/users/list")
List<User> userList();
原始响应
@GET("/users/list")
Response userList();
Response 对象确实有获取正文的方法
TypedInput getBody()
retrofit api 确实有一个转换器类,可以将其转换为 java 对象
Object fromBody(TypedInput body,Type type)
但我不知道如何获取 Converter 对象的实例
我可能能够创建 Converter 类的实例,但这需要了解用于创建 RestAdapter 的 Gson 对象,而我可能无法访问该对象。理想情况下,我想直接通过 RestAdpater 获得对转换器对象的引用。
以下任何一项都会回答我的问题:
- 有没有办法获得对改造使用的默认转换器的引用?
- 有人知道默认转换器是如何构造的吗? (没有默认构造函数,有两个构造函数
public GsonConverter(Gson gson)和public GsonConverter(Gson gson, String charset) - 还有其他方法可以在同步模式下同时获取原始响应和转换后的响应吗?
【问题讨论】: