使用 JDK 自带的 UrlConnection
也能访问网络资源,但是要处理 SSL,Cookie,Proxy 等时编码就会很麻烦,Apache HttpClient
的功能非常强大,封装了很多操作,使用简单,能很方便的访问网络资源,其示例代码中有很多有用的例子,下载地址为 http://hc.apache.org/downloads.cgi
1 | ├── ClientAbortMethod.java |
还有 FluentApi 的例子
1 | ├── FluentAsync.java |
下面简单的介绍一下使用 HttpClient 下载一幅图片,FluentApi 使用更加简洁,但是功能相对较少。
Gradle 依赖
1 | dependencies { |
使用 FluentApi 下载文件
The fluent API relieves the user from having to deal with manual deallocation of system resources at the cost of having to buffer response content in memory in some cases.
使用 FluentApi 不需要手动的缓存 response 数据到内存和释放相应的资源,FluentApi 已经帮我们处理好了。
1 | import org.apache.http.client.fluent.Request; |
使用普通的 Api 下载文件
同样是下载文件,相比之下,代码复杂了不少
1 | import org.apache.http.HttpEntity; |