web-dev-qa-db-ja.com

キャッシュを無視してサーバーから強制的に更新するようにOkHttpClientに指示するにはどうすればよいですか?

Androidアプリケーションで、キャッシュを有効にしてOkHttpClientでRetrofitを使用し、一部のAPIにアクセスしています。一部のAPIは空のデータを返すことがあります。アプリの[更新]ボタンをクライアントに提供します特定のAPIからデータをリロードします。

特定のリクエストでキャッシュされたエントリを無視するようにOkHttpClientに指示するにはどうすればよいですか。または、単一の要求に対応するキャッシュされた応答を削除するメカニズムはありますか?

Cache.remove(request)メソッドが見つかりましたが、プライベートとしてマークされています。

26
inder

Jake Whartonが issues で提案したように、これを実行してキャッシュを無視します。

request.setCacheControl(CacheControl.FORCE_NETWORK);
24
inder
@Headers("Cache-Control: no-cache") 

メソッドで動作するはずです。動的に実行したい場合は、

@Header("Cache-Control") 

文字列のcacheControlパラメータとnullまたは「no-cache」を渡す

3
Rasheed