Retrofit自定义Converter,获取原始请求数据,实现自定义解析

本文介绍如何在Retrofit中通过自定义Converter获取原始请求数据并实现自定义解析。首先,作者指出常规情况下只能获取转换后的结果对象而无法看到原始数据。接着,提出通过重写DecodeConverterFactory、DecodeRequestBodyConverter和DecodeResponseBodyConverter三个类来解决问题。随后,详细阐述了实施步骤,包括引用相关库、构建Retrofit对象以及重写相关转换器的代码实现。
摘要由CSDN通过智能技术生成

写在前面

本篇博客的目的只是拿到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 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值