retrofit
を使用するプロセスでは、通常、サーバーが response
のいずれかを返します。
次と同じ大きさ
の result
はリクエストする必要があるデータなので、apis
を記述するときは
ここでの 結果
は実際のニーズに応じて取得されます。これが事実であれば、比較的簡単です。
ただし、サーバーから返された result
フィールドの値が暗号化されている場合、現時点では直接解析することはできません。今考えられる方法は、 にインターセプターを追加することです。 okhttp
、返されたデータのフィールドを直接変更します(ただし、まだ方法がわかりません)今、私の考えがあまり良くないように感じています。解決する方法があるかどうか尋ねたいです。 ConverterFactory
?
ありがとうございます。このような状況は珍しいことではないと思うので、専門家に質問したいと思います。ありがとうございます。
カスタムデータプロトコルの手順:
カスタマイズされた
電話-
さらに、呼び出し方法もカスタマイズできます。現在最も人気のあるものは
RetrofitConverter.Factory
, 参考retrofit2.converter.gson.GsonConverterFactory
Retrofit.Builder#addConverterFactory(Converter.Factory)
+RxJava(RxAndroid)です。手順は次のとおりです。
カスタマイズされたCallAdapter.Factory
, 参考retrofit2.adapter.rxjava.RxJavaCallAdapterFactory
Retrofit.Builder#addCallAdapterFactory(CallAdapter.Factory)
一般に、ジェネリック T は、実際にサーバーから返されたエンティティを表すために Result で使用されます。あなたが言ったように、最初にインターセプターを使用して結果をデコードし、それから gson で直接解析できます
。