如果您已更新Apache HTTP Client代码以使用最新的库(在撰写本文时,它是4.2.x版本的httpclient 4.3.5版本和httpcore 4.3.2版本),您会注意到某些类(例如org.apache.http.impl.client.DefaultHttpClient
或org.apache.http.params.HttpParams
已被弃用。 好吧,我去过那里,所以在这篇文章中,我将介绍如何通过使用新类摆脱警告。
1.
我将用于演示的用例很简单:我有一个批处理作业,以检查是否有新的情节可用于播客。 为了避免在没有新情节的情况下必须获取和解析提要,我先验证自上次调用以来eTag
或提要资源的last-modified
标头是否已更改。 如果供稿发布者支持这些标头,这将起作用,我强烈建议您使用这些标头,因为这样可以节省使用者的带宽和处理能力。
那么它是如何工作的呢? 最初,当将新的播客添加到Podcastpedia.org目录时,我检查供稿资源的标头是否存在,如果存在,则将其存储在数据库中。 为此,我借助Apache Http Client对提要的URL执行HTTP HEAD请求。 根据超文本传输协议HTTP / 1.1 rfc2616 ,HTTP头中包含的响应HEAD请求的元信息应与响应GET请求发送的信息相同。
在以下各节中,我将介绍在升级到Apache Http Client的4.3.x版本之前和之后,代码在Java中的实际外观。
2.迁移到4.3.x版本
软件依赖
要构建我的项目,该项目现在可以在GitHub – Podcastpedia-batch上使用 ,我正在使用maven,因此在下面列出了Apache Http Client所需的依赖项:
2.1.1。 之前
Apache Http Client依赖项4.2.x