获取响应标头OkHttp

时间:2015-10-13 13:47:04

标签: java retrofit okhttp

我需要使用HTTP request库检查OkHTTP的响应标头。在加载数据之前,我需要检查它的最后更新时间。问题在于响应主体约为2 MB所以我只需要获得Last-Modified标题。是否可以仅加载没有响应体的响应头,以提高程序的RESTful操作的速度?

2 个答案:

答案 0 :(得分:12)

您可以发送仅检索标头的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();

答案 1 :(得分:5)

响应正文是流式传输的,因此您可以发出常规请求,读取标题,然后决定是否使用正文。如果你不想要身体,你可以close()没有太多浪费。

服务器提供可能被放弃的响应的成本很低。但总体费用将低于制作HEAD然后GET请求,除非您预计会放弃相当大一部分(例如> 90%)的请求。