概览
http是现在主流应用使用的网络请求方式, 用来交换数据和内容, 有效的使用HTTP可以使你的APP 变的更快和减少流量的使用
OkHttp 是一个很棒HTTP客户端(GitHub主页:https://github.com/square/okhttp):
- 支持SPDY, 可以合并多个到同一个主机的请求
- 使用连接池技术减少请求的延迟(如果SPDY是可用的话)
- 使用GZIP压缩减少传输的数据量
- 缓存响应避免重复的网络请求
当你的网络出现拥挤的时候,就是OKHttp 大显身手的时候, 它可以避免常见的网络问题,如果你的服务是部署在不同的IP上面的,如果第一个连接失败, OkHTtp会尝试其他的连接. 这个对现在IPv4+IPv6 中常见的把服务冗余部署在不同的数据中心上. OkHttp 将使用现在TLS特性(SNI ALPN) 来初始化新的连接. 如果握手失败, 将切换到SLLv3
使用OkHttp很容易, 同时支持 异步阻塞请求和回调.
如果你使用OkHttp ,你不用重写你的代码, okhttp-urlconnection模块实现了 java.net.HttpURLConnection 中的API, okhttp-apache模块实现了HttpClient中的API
GET 请求
我们从最简单的 Http 请求开始学起,首先需要获取一个 OkHttpClient 对象,方法如下:
OkHttpClient 用于管理所有的请求,内部支持并发,所以我们不必每次请求都创建一个 OkHttpClient 对象,这是非常耗费资源的。接下来就是创建一个 Request 对象了,如下所示:
调用 post() 方法,将创建的 RequestBody 对象传入即可。开始请求与前面讲的 GET 请求一样。实现 POST 请求大概分四步:
- 创建 OkHttpClient 对象
- 创建 RequestBody 对象
- 创建 Request 对象
将 Request 对象添加到 OkHttpClient 中,并传入回调函数。