前言
- 本文涉及源码均基于
okhttp 3.14.9
。
一、OkHttp简介
OkHttp
是Android开发最常用的网络请求框架,由Square
公司开源。- Android4.4以后,源码中
HttpURLConnection
底层实现已经替换成了OKHttp
。 - 目前流行的
Retrofit
框架底层也是基于OKHttp
实现。 OkHttp4.x
已经改为kotlin
实现。
二、OkHttp优点
- 支持
Http1
、Http2
、Quic
和WebSocket
协议。 - 连接池复用底层
TCP(Socket)
,减少请求延时。 - 支持
GZIP
,减少数据流量。 - 缓存响应数据减少重复的网络请求 。
- 请求失败支持自动重试其他IP。
- 支持自动重定向。
三、基本配置
依赖导入
项目导入依赖
implementation 'com.squareup.okhttp3:okhttp:3.14.9'
权限配置
使用时,需要在清单文件AndroidManifest.xml
中配置网络使用权限
<uses-permission android:name="android.permission.INTERNET" />
四、OkHttp使用流程
由上图可知,使用OkHttp发起一个请求的具体步骤如下:
- 1 通过
OkHttpClient.Builder
创建OkHttpClient
- 2 通过
Request.Builder
创建Request
- 3 调用
OkHttpClient
对象的newCall
方法,传入Request
,生成Call
- 4 由
Call
对象调用execute
或者enqueue
方法得到响应Response
五、Get 方式发起请求
同步请求