HTTP学习之更新本地缓存

序言

很多时候我们会将网络请求结果缓存在客户端,只有当数据发生改变的时候我们才更新这些信息,怎么实现呢,其实通过HTTP可以实现多种方式例如对比页面最近修改的时间,或者通过对比实体标签ETag,这种标签会随着资源的更新而更新,只要对比ETag是否相同也可以判断内容是否发生改变,此处我通过对比资源更新时间来实现。

实现

我使用的代码还是上一篇博客的代码,至于修改的部分我都会贴出来的,首先我们实验的地址如下

 //气象局数据接口
        String url = "http://www.weather.com.cn/data/sk/101010100.html";

点开以后是这样的
这里写图片描述

首先正常访问它,获取到它最近更新的时间,我可以将这个时间保存到客户端

这里写图片描述

接着我们在首部自动中加入 If-Modified-Since: Tue, 05 Jul 2016 03:17:17 GMT 其作用是让服务器进行判断,如果在这个时间点之后还有更新的话就返回给我最新的内容,否则的话返回304,我们可以通过这个状态码,判断是否有更新。

有更新的情况

这里写图片描述

没有更新的情况

这里写图片描述

补充

如果我们只想获取响应头而不不需要内容的话,我们可以使用HEAD方法

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值