获取响应标头OkHttp

Nea*_*999 8 java retrofit okhttp

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

wer*_*ero 12

您可以发送仅检索标头的HTTP HEAD请求.您只需要检查您的服务器应用程序是否支持HEAD请求.

HEAD方法与GET相同,只是服务器不能在响应中返回消息体.响应HEAD请求的HTTP头中包含的元信息应该与响应GET请求时发送的信息相同.该方法可用于获得关于请求所暗示的实体的元信息,而无需转移实体主体本身.此方法通常用于测试超文本链接的有效性,可访问性和最近的修改.
(http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)

OkHttp的示例:

String url = ...
Request request = new Request.Builder().url(url).head().build();
Run Code Online (Sandbox Code Playgroud)

  • @ Near1999添加了一个例子 (2认同)

Jes*_*son 5

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

服务器提供可能会被放弃的响应的成本很小。但总的成本会比制作下侧HEAD,然后GET,除非你希望放弃请求的显著的比例(> 90%)的要求。