概述:
大多数需要联网的Android应用都用HTTP协议进行数据是发送与接收。Android有两种HTTP客户端:HttpURLConnection和Apache HTTP Client。且两种都支持HTTPS协议、流的上传和下载、连接超时配置、IPv6协议和连接池。DefaultHttpClient 和 AndroidHttpClient 都是可扩展的HTTP客户端。
Apache HTTP Client
但庞大数量的API也提高了扩展其兼容性的难度。Android团队现在没有那么热衷它了。
HttpURLConnection
HttpURLConnection是一种适用于绝大多数APP的多用途,轻量级的HTTP client 。
在4.0版本中,加入了一个response cache。有了response cache 后,HTTP的request可以有三种方式响应:
·
-
完全缓存的response可以从本地的存储响应。因为因为没有网络连接需要得到立即可用响应。
-
条件缓存的响应需要有web服务器提供的对应最新的证书。如果客户端发送类似“Give me /foo.png if it changed since yesterday”,服务器返回的可能是没有更新的内容或者是304错误状态码。即使内容没有变,也不能下载。
-
没有缓存的response是从web服务器上提供的。这些响应稍后也会被存储到response cache中。
完全缓存的response可以从本地的存储响应。因为因为没有网络连接需要得到立即可用响应。
条件缓存的响应需要有web服务器提供的对应最新的证书。如果客户端发送类似“Give me /foo.png if it changed since yesterday”,服务器返回的可能是没有更新的内容或者是304错误状态码。即使内容没有变,也不能下载。
没有缓存的response是从web服务器上提供的。这些响应稍后也会被存储到response cache中。
参考: