OKHttp框架
来源:互联网 发布:哪个软件可以看韩剧 编辑:程序博客网 时间:2024/05/16 12:21
原文地址
导入jar包或在Gradle中进行如下配置
compile 'com.squareup.okhttp3:okhttp:3.3.1'
或者通过maven导入
<dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.2.0</version></dependency>
在使用Okhttp进行开发的时候,主要牵扯到以下几个核心类:OkHttpClient、Request、Call 和 Response。
1.OkHttpClient
OkHttpClient表示了HTTP请求的客户端类,在绝大多数的App中,我们只应该执行一次new OkHttpClient(),将其作为全局的实例进行保存,从而在App的各处都只使用这一个实例对象,这样所有的HTTP请求都可以共用Response缓存、共用线程池以及共用连接池。
默认情况下,直接执行OkHttpClient client = new OkHttpClient()就可以实例化一个OkHttpClient对象。
可以配置OkHttpClient的一些参数,比如超时时间、缓存目录、代理、Authenticator等,那么就需要用到内部类OkHttpClient.Builder,设置如下所示:
OkHttpClient client = new OkHttpClient.Builder(). readTimeout(30, TimeUnit.SECONDS). cache(cache). proxy(proxy). authenticator(authenticator). build();
OkHttpClient本身不能设置参数,需要借助于其内部类Builder设置参数,参数设置完成后,调用Builder的build方法得到一个配置好参数的OkHttpClient对象。这些配置的参数会对该OkHttpClient对象所生成的所有HTTP请求都有影响。
有时候我们想单独给某个网络请求设置特别的几个参数,比如只想让某个请求的超时时间设置为一分钟,但是还想保持OkHttpClient对象中的其他的参数设置,那么可以调用OkHttpClient对象的newBuilder()方法,代码如下所示:
OkHttpClient client = ...OkHttpClient clientWith60sTimeout = client.newBuilder(). readTimeout(60, TimeUnit.SECONDS). build();
clientWith60sTimeout中的参数来自于client中的配置参数,只不过它覆盖了读取超时时间这一个参数,其余参数与client中的一致。
2.Request
Request类封装了请求报文信息:请求的Url地址、请求的方法(如GET、POST等)、各种请求头(如Content-Type、Cookie)以及可选的请求体。一般通过内部类Request.Builder的链式调用生成Request对象。
3.Call
Call代表了一个实际的HTTP请求,它是连接Request和Response的桥梁,通过Request对象的newCall()方法可以得到一个Call对象。Call对象既支持同步获取数据,也可以异步获取数据。
执行Call对象的execute()方法,会阻塞当前线程去获取数据,该方法返回一个Response对象。
执行Call对象的enqueue()方法,不会阻塞当前线程,该方法接收一个Callback对象,当异步获取到数据之后,会回调执行Callback对象的相应方法。如果请求成功,则执行Callback对象的onResponse方法,并将Response对象传入该方法中;如果请求失败,则执行Callback对象的onFailure方法。
4.Response
Response类封装了响应报文信息:状态吗(200、404等)、响应头(Content-Type、Server等)以及可选的响应体。可以通过Call对象的execute()方法获得Response对象,异步回调执行Callback对象的onResponse方法时也可以获取Response对象。
- oKhttp框架
- OkHTTP框架
- OKHttp框架
- OkHttp框架
- OkHttp框架
- OKHttp框架
- Android OkHttp封装 框架
- okHttp开发框架使用
- android OkHttp框架解析
- okhttp框架的封装
- okhttp框架的使用
- okhttp网络请求框架
- java-框架-OkHttp
- 网络请求框架OKHttp
- OkHttp网络请求框架
- Android OkHttp框架解析
- okhttp框架 工具类
- Android okHttp框架
- librdkafka问题总结
- 事务四大特征:原子性,一致性,隔离性和持久性(ACID)
- VTK参考书目
- hdu ---2036做题笔记(c++)
- Golang Thrift Hive
- OKHttp框架
- 关于CPU、指令集、架构、芯片的一些科普
- 10.13 学习 函数式 swift 笔记 sort()
- UVA 1401 Remember the Word(Trie树 套 DP)
- MySQL性能优化必备25条
- Setting
- Android studio下JNI(NDK)开发
- 欢迎使用CSDN-markdown编辑器
- MVC中的Controller都有哪些作用?