android - retrofit 如何处理加密字段的数据类型解析?

查看:143
本文介绍了android - retrofit 如何处理加密字段的数据类型解析?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在使用retrofit过程中,通常,如果服务器返回我们的一个response
大至如下

{
    "code":200,
     "msg":"success",
     "result":"result"
}

result中是我们请求需要的数据,所以在写apis的时候可以写成

Call<Response<Result>> getResult(Requset request);

这里的Result 根据实际需求来获得,如果是这种情况的话就比较简单.

但是如果服务器返回的result字段的值是加密过的,那么这时候就无法直接解析了,我现在能想到的方法是给okhttp添加拦截器,直接修改返回的数据里面的字段(但是我还不知道具体怎样做),现在觉得我的思路不太好,想请问下有什么办法可以好一点的解决,自定义一个ConverterFactory?

谢谢,我想这种情况应该也不算少见,所以就来请教一下各位大神.谢谢

解决方案

可以考虑使用拦截器做加解密处理, 使用Converter.Factory做数据协议解析.

Retrofit自定义数据协议步骤:

  1. 自定义Converter.Factory, 参考retrofit2.converter.gson.GsonConverterFactory

  2. 调用 Retrofit.Builder#addConverterFactory(Converter.Factory)

除此之外, 调用方式也可以自定义, 目前比较流行使用的是Retrofit+RxJava(RxAndroid), 步骤如下:

  1. 自定义CallAdapter.Factory, 参考retrofit2.adapter.rxjava.RxJavaCallAdapterFactory

  2. 调用 Retrofit.Builder#addCallAdapterFactory(CallAdapter.Factory)

这篇关于android - retrofit 如何处理加密字段的数据类型解析?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆