我试图在我的应用程序中模拟像“缓存验证”这样的过程。 我将在设备上下载我的web应用程序的新版本(基于安卓),但我只想下载基于etag比较的新版本的文件。 有没有人如何在Android中使用Etag机制的例子?etag比较代码示例
2
A
回答
0
也许从这个图书馆(kevinsawicki)的类“HttpRequest”将帮助你。
例如:
File latest = new File("/data/cache.json");
HttpRequest request = HttpRequest.get("http://google.com");
//Copy response to file
request.body(latest);
//Store eTag of response
String eTag = request.eTag();
//Later you can check if changes exist
boolean unchanged = HttpRequest.get("http://google.com")
.ifNoneMatch(eTag)
.notModified();
1
您可以从一个HttpURLConnection类对象访问ETag字段,例如像这样:
HttpURLConnection conn = (HttpURLConnection)new URL(url).openConnection();
String etag = conn.getHeaderField("ETag");
当然,你需要确保服务器你测试这个支持ETags。
0
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
try {
HttpResponse response = httpClient.execute(httpPost);
Log.d("Http Response:", response.getFirstHeader("etag").toString());
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
0
你可以参考具体的春季进行ETAG生成和验证的ShallowEtagHeaderFilter实现。
相关问题
- 1. 是否有比较Scala和JavaFX Script的代码示例?
- 2. 通过代码示例比较PHP与Python的具体缺点?
- 3. Selenium日期比较示例
- 4. 使用emf比较代码?
- 5. 代码比较两次项
- 6. JavaScript和VBScript代码比较
- 7. 指纹比较代码
- 8. 比较代码的批量
- 9. 代码示例
- 10. 比较例外
- 11. 代码比较登录名和密码
- 12. 如何写C#的实体比较(与第一次尝试的示例代码)
- 13. JDK1.6和jdk1.8代码之间的比较用实施例
- 14. 通用对象比较比较例程
- 15. 比较编辑器的示例
- 16. WebRTC代码示例
- 17. onFocusChange代码示例?
- 18. CATiledLayer:示例代码
- 19. TTXMLParser示例代码?
- 20. GtkImageView示例代码
- 21. 比较UIViewController实例
- 22. 并行代码比串行代码慢(值函数迭代示例)
- 23. 为什么GitHub在比较代码时突出显示每个代码
- 24. Grails示例和示例代码片段
- 25. XSD代码生成器的比较
- 26. 口译汇编代码比较
- 27. php编译器比较代码?
- 28. 比较相似的JavaScript代码
- 29. 提高代码:比较元素
- 30. 组装与C代码比较