写在前面
本篇博客的目的只是拿到Retrofit请求回来的原始数据,或者是将Retrofit请求回来的数据通过自定义的Converter实现自定义解析(大神请无视)
发现问题
我们在进行网络请求,服务器返回的数据肯定都是定义好格式的数据。
比如JSON格式,如果我们使用HttpURLConnection请求服务器数据,大部分是利用Google提供的gson.jar进行数据格式转换。
现在都通过 .addConverterFactory(GsonConverterFactory.create())
进行转换,但是这种方式只能拿到转换完的结果对象,并看不到服务器返回的原始数据。
解决思路
重写DecodeConverterFactory和DecodeRequestBodyConverter已经DecodeResponseBodyConverter三个类获取服务器返回的原始数据。
接下来开始撸代码
- 1.引用相关类库
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'io.reactivex:rxandroid:1.2.0'
- 2.构建Retrofit对象
retrofit = new Retrofit.Builder().baseUrl(Global.URLPATH)
.client(new OkHttpClient())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(DecodeConverterFactory.create())
.build();
3.重写DecodeConverterFactory类
public class DecodeConverterFactory