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