1

Facebook の stetho は、OKHTTP のみをサポートしているようで、Android 用の他のすべてのネットワーク フレームワークはほとんどサポートしていないようです: http://facebook.github.io/stetho/#integrations

私は Spring RestTemplate を使用していますが、どうすれば stetho を Spring とうまく連携させることができるのか疑問に思っています。Spring Resttemplate で OKHTTP を使用できることは知っていますが、アプリを小さくしておくことを好み、アプリに余分なネットワーク ライブラリを追加することは避けたいと考えています。

http://docs.spring.io/autorepo/docs/spring-android/2.0.0.BUILD-SNAPSHOT/reference/html/rest-template.html

2 つのネイティブ クライアントの代わりに、OkHttp に基づく追加の ClientHttpRequestFactory を使用できます。RestTemplate は、RestTemplate コンストラクターを介して、または requestFactory プロパティを設定することにより、OkHttpRequestFactory を使用するように構成できます。Android 2.3 (Gingerbread) 以降でサポートされていますが、これを使用するには、プロジェクトに OkHttp 依存関係を含める必要があります。

私のSpring RestTemplateはHttpURLConnectionを使用して呼び出しを行っているようで、stethoをHttpURLConnectionで動作させる方法についての指示があるようですが、指示は非常に簡単です:

HttpURLConnection を使用している場合は、StethoURLConnectionManager を使用して統合を支援できますが、このアプローチにはいくつかの注意点があることに注意してください。具体的には、Stetho が圧縮されたペイロード サイズを報告できるようにするには、明示的に Accept-Encoding: gzip を要求ヘッダーに追加し、圧縮された応答を手動で処理する必要があります。

clienthttprequestinterceptorただし、a を使用してリクエストを送信し、送信前に認証ヘッダーを追加するため、上記の手順が私の場合には機能しないことが懸念されます。これにより、このスレッドによると、GZIP 圧縮が 2 回発生します。

ClientHttpRequestInterceptor を使用した RestTemplate により、GZIP 圧縮が 2 回発生する

Android用のSpring RestTemplateでstethoをうまく使った人はいますか? 現時点での回避策は、stetho の代わりに、Charles Proxy (有料の代替手段) を使用してすべてのネットワーク呼び出しを検出することです。

4

0 に答える 0