我試圖在我的應用程序中模擬像「緩存驗證」這樣的過程。 我將在設備上下載我的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. ULP比較代碼
- 4. 比較源代碼
- 5. Github for Mac未顯示代碼比較
- 6. Selenium日期比較示例
- 7. 代碼比較兩次項
- 8. 使用emf比較代碼?
- 9. 比較代碼的批量
- 10. JavaScript和VBScript代碼比較
- 11. 指紋比較代碼
- 12. 代碼示例
- 13. 比較例外
- 14. 代碼比較登錄名和密碼
- 15. 如何寫C#的實體比較(與第一次嘗試的示例代碼)
- 16. JDK1.6和jdk1.8代碼之間的比較用實施例
- 17. 通用對象比較比較例程
- 18. onFocusChange代碼示例?
- 19. Manatee.Trello:Webhook代碼示例
- 20. 小代碼示例
- 21. TTXMLParser示例代碼?
- 22. GtkImageView示例代碼
- 23. WebRTC代碼示例
- 24. HDF5示例代碼
- 25. CATiledLayer:示例代碼
- 26. GDK示例代碼
- 27. AdadeltaOptimizer示例代碼
- 28. 僞代碼示例
- 29. JSONRequest.get示例代碼
- 30. LINQ示例代碼...