Android OkHttp如何处理ETag
Android OkHttp how to handle ETag
我正在尝试使用 OkHttp Android 离线缓存方法。流程是这样的:
- 我在 header 字段
if-none-catched
向服务器发送一个带有 ETag 空字符串的 HTTP 请求,并且服务器 return 是一个正确的 ETag。
- 然后我存储 ETag 并缓存响应。
- 下次当我触发相同的服务调用时,我会得到相同的 ETag 并将其设置为 HTTP 请求 header,如果 ETag 相同,服务器将 return HTTP 304。
我现在的问题是如何存储和检索 ETag? OkHttp 默认会处理还是我需要存储在 SQLite 上?我一直在寻找 Google 关于 OkHttp 实现 ETag 示例代码的信息,但我得到的只是普通的缓存方法。 Link 我指的是:
- https://github.com/square/okhttp/wiki/Interceptors
- https://gist.github.com/polbins/1c7f9303d2b7d169a3b1#file-restcontroller-java-L45
到目前为止,我只实现了第一次服务调用的缓存,但再也没有从服务器获取最新数据。感谢任何人是否可以提供一些指导或找到任何动态处理 ETag 和 if-none-catch
的好例子供 OkHttp 共享。如有任何疑问,请随时提出。
你只需要enable OkHttp’s response cache。如果您的网络服务器 returns 一个,它将使用 ETag。
我正在尝试使用 OkHttp Android 离线缓存方法。流程是这样的:
- 我在 header 字段
if-none-catched
向服务器发送一个带有 ETag 空字符串的 HTTP 请求,并且服务器 return 是一个正确的 ETag。 - 然后我存储 ETag 并缓存响应。
- 下次当我触发相同的服务调用时,我会得到相同的 ETag 并将其设置为 HTTP 请求 header,如果 ETag 相同,服务器将 return HTTP 304。
我现在的问题是如何存储和检索 ETag? OkHttp 默认会处理还是我需要存储在 SQLite 上?我一直在寻找 Google 关于 OkHttp 实现 ETag 示例代码的信息,但我得到的只是普通的缓存方法。 Link 我指的是:
- https://github.com/square/okhttp/wiki/Interceptors
- https://gist.github.com/polbins/1c7f9303d2b7d169a3b1#file-restcontroller-java-L45
到目前为止,我只实现了第一次服务调用的缓存,但再也没有从服务器获取最新数据。感谢任何人是否可以提供一些指导或找到任何动态处理 ETag 和 if-none-catch
的好例子供 OkHttp 共享。如有任何疑问,请随时提出。
你只需要enable OkHttp’s response cache。如果您的网络服务器 returns 一个,它将使用 ETag。