Maison > Questions et réponses > le corps du texte
En cours d'utilisationretrofit
过程中,通常,如果服务器返回我们的一个response
.
Aussi grand que ci-dessous
{
"code":200,
"msg":"success",
"result":"result"
}
peut s'écrire result
中是我们请求需要的数据,所以在写apis
quand
Call<Response<Result>> getResult(Requset request);
Le Result
ici est obtenu en fonction des besoins réels. Si tel est le cas, ce sera relativement simple.
Mais si le serveur revient result
字段的值是加密过的,那么这时候就无法直接解析了,我现在能想到的方法是给okhttp
添加拦截器,直接修改返回的数据里面的字段(但是我还不知道具体怎样做),现在觉得我的思路不太好,想请问下有什么办法可以好一点的解决,自定义一个ConverterFactory
?
Merci, je pense que cette situation ne devrait pas être rare, je suis donc venue demander conseil aux experts. Merci
.滿天的星座2017-06-05 11:13:02
Vous pouvez envisager d'utiliser des intercepteurs pour le cryptage et le déchiffrement, et Converter.Factory pour l'analyse du protocole de données.
RétrofitÉtapes du protocole de données personnalisé :
Personnalisez Converter.Factory
, reportez-vous à retrofit2.converter.gson.GsonConverterFactory
Converter.Factory
, 参考retrofit2.converter.gson.GsonConverterFactory
调用 Retrofit.Builder#addConverterFactory(Converter.Factory)
除此之外, 调用方式也可以自定义, 目前比较流行使用的是Retrofit+RxJava(RxAndroid), 步骤如下:
自定义CallAdapter.Factory
, 参考retrofit2.adapter.rxjava.RxJavaCallAdapterFactory
调用 Retrofit.Builder#addCallAdapterFactory(CallAdapter.Factory)
Retrofit.Builder#addConverterFactory(Converter.Factory)
🎜🎜
🎜
🎜De plus, la méthode d'appel peut également être personnalisée. La plus populaire actuellement est 🎜Retrofit🎜+🎜RxJava🎜(🎜RxAndroid🎜).
🎜
🎜🎜Personnalisez CallAdapter.Factory
, reportez-vous à retrofit2.adapter.rxjava.RxJavaCallAdapterFactory
🎜🎜
🎜🎜Appelez Retrofit.Builder#addCallAdapterFactory(CallAdapter.Factory)
🎜🎜
🎜淡淡烟草味2017-06-05 11:13:02
Généralement, le T générique est utilisé dans Result pour représenter l'entité réellement renvoyée par le serveur, vous pouvez d'abord utiliser l'intercepteur pour décoder le résultat, puis l'analyser directement avec gson
.