プロジェクトで Spring for Android を使用しており、Cookie ストア/マネージャーを管理する必要があります。の実装を使用して任意のリクエストに Cookie を追加できますがClientHttpRequestInterceptor
、リクエストを送信するときにこれらの一部を削除したいと考えています。
より具体的に言うと、私が直面している問題は、Froyo の場合、Spring
(with で) 固有の実装が、ヘッダーに明示的にヘッダーを設定している場合でもDefaultHttpClient
、Cookie を自動的に追加することです。CookieStore
しかし、これらの Cookie を自分で管理したいと考えています (一部を削除するか、値を更新します)。上記のジンジャーブレッドの場合(Spring
実装は で行われますHttpURLConnection
)、Cookieは自分で行っている場合にのみ追加されます-ただし、Springの設定が表示されないため、わかりませんが、最終的CookieHandler
にはそれらが表示されないということですリクエストを実行するとき、またはそれらが更新されているのを見ることができます。したがって、問題は Froyo に固有のものです。
回避策は、接続ファクトリをリセットすることです。何かのようなもの:
protected void resetCookieStoreForTemplate(RestTemplate template) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.FROYO) {
template.setRequestFactory(new HttpComponentsClientHttpRequestFactory());
}
}
その下では、DefaultHttpClient を再作成しているようで、新しいCookieStore
. しかし、それは私には少し醜いようです。
最後に、私の質問は次のとおりSpring for Android
です。Cookie 管理用の API を公開する方法はありますか? RestTemplateがコネクティビティ、コネクション ファクトリ、メッセージ コンバーターなどの抽象化を公開するのと同じように、Cookie 管理の抽象化があれば非常に嬉しく思います。