我需要使用OkHTTP
庫檢查HTTP request
的響應頭。在加載數據之前,我需要檢查它是否是上次更新時間。問題在於響應正文約爲2 MB
,所以我只需要獲得Last-Modified
標題。是否可以只加載沒有響應主體的響應頭來提高程序的RESTful動作的速度?獲取響應頭OkHttp
回答
您可以發送僅檢索標頭的HTTP HEAD請求。你只需要檢查你的服務器應用程序是否支持HEAD請求。
HEAD方法與GET相同,只是服務器不能在響應中返回消息主體 。 HTTP頭中包含 的元信息響應於HEAD請求應該與響應GET請求發送的信息相同 。此方法可用於獲取有關 請求隱含的實體的元信息,而不會傳輸實體主體本身。此方法是 經常用於測試超文本鏈接的有效性,可訪問性, 和最近的修改。
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)
爲OkHttp實施例:
String url = ...
Request request = new Request.Builder().url(url).head().build();
響應體被流傳輸,這樣就可以使經常請求,讀出的標頭,然後再決定是否要消耗體內。如果你不想要身體,你可以close()
它沒有太多的浪費。
服務器爲服務可能會被放棄的響應的成本很低。但總體成本將低於制定HEAD
,然後GET
請求,除非您希望放棄大部分請求(例如> 90%)。
所以,當我調用** response.body()**的時候,請求只會開始下載? – Near1999
_Almost_。它會在此之前下載最初的幾個KiB,但在您調用'response.body()'之前它不會下載太多內容。 –
- 1. okhttp獲取失敗響應
- 2. 如何使用Glide和OkHttp獲取http響應頭文件
- 3. 獲取index.html的響應頭
- 4. 獲取響應頭/身體
- 5. 從OkHttp響應中獲取原始請求
- 6. 如何獲取OkHttp響應代碼304上的數據?
- 7. 如何從okhttp中獲取GET請求到API的響應?
- 8. Retrofit/OkHttp響應崩潰
- 9. 當401發生時獲取響應頭
- 10. Restangular:如何獲取HTTP響應頭?
- 11. 從NSMutableURLRequest獲取響應頭文件
- 12. 使用prototype.js獲取響應標頭
- 13. 如何從ActiveResource獲取響應頭?
- 14. 從響應頭獲取位置
- 15. 從HTTP標頭獲取響應
- 16. 獲取服務頁面響應標頭
- 17. ExtJS無法獲取響應標頭
- 18. 獲取HTTP響應頭/用PHP
- 19. 從HTTP標頭響應獲取日期
- 20. 從PHP獲取頭文件cURL響應
- 21. Laravel 4 - Javascript獲取響應頭文件
- 22. 在FLUrl中獲取響應頭c#
- 23. jQuery - 獲取AJAX響應標頭
- 24. 獲取響應頭獲取的客戶端
- 25. 獲得頭響應體
- 26. 僅獲得響應頭
- 27. okHttp獲取Android的問題
- 28. 提取特定頭球$ HTTP響應頭
- 29. 檢查okhttp響應是否新鮮
- 30. OkHttp響應削減後回車符號
你能寫一個我怎麼用OkHttp做的例子嗎?我無法在javadoc中找到操作它的方法((( – Near1999
@ Near1999我在我的答案中更正了Javadoc鏈接,現在它指向'Request.Builder'中的'head()'方法。這有幫助嗎? – wero
I知道如何構建請求,我不知道如何構建** HEAD請求**,並且javadoc沒有幫助我(我知道如何爲請求添加標頭以及如何讓它們響應,但我不'如果你知道怎麼做,請發佈一個代碼示例 – Near1999