关于okhttp在java中的应用

okhttp学习笔记

注:此文仅为个人学习笔记,走过路过前辈们,如果文章有问题还请批评指正,博主本人时刻虚心请教!
参考文章OkHttp3特性艾曼大山https://www.jianshu.com/p/f1ab6182d6fc
(持续更新ing…)

一、android网络框架之OKhttp(Android Studio)

一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso),用于替代HttpUrlConnection和Apache HttpClient(android API23 6.0里已移除HttpClient,现在已经打不出来)

1)功能:

1.联网请求文本数据
2.大文件下载
3.大文件上传
4.请求图片

2)优点:

1.允许连接到同一个主机地址的所有请求,提高请求效率
2.共享Socket,减少对服务器的请求次数
3.通过连接池,减少了请求延迟
4.缓存响应数据来减少重复的网络请求
5.减少了对数据流量的消耗
6.自动处理GZip压缩

当网络出现问题的时候,OkHttp依然坚守自己的职责,它会自动恢复一般的连接问题,如果你的服务有多个IP地址,当第一个IP请求失败时,OkHttp会交替尝试你配置的其他IP,这对于使用IPv4+IPv6托管在冗余数据中心中的服务是必需的,OkHttp使用现代TLS技术(TLS 1.3、ALPN、证书固定)初始化新的连接,当握手失败时会回退到TLS 1.0。(出自):https://blog.csdn.net/baidu_32237719/article/details/100125359

二、Okhttp3

1.支持http2,使得对同一个主机发出的所有请求都可以共享相同的socket套接字连接;
2.使用连接池来复用连接以减少延迟、提高效率;
3.支持Gzip压缩响应体,降低传输内容的大小;
4.支持Http缓存,避免重复请求;
5.请求失败时会自动重试主机中的其他IP地址自动重定向;
6.使用Okio来简化数据的访问与存储,提高性能;
7.使用了创建者设计模式;

三、使用方法
1)GET请求

1.第一步创建OkHttpClient对象
2.如果需要拼接参数 (一般有参数的都会用Post请求,除非参数不重要)
3.第二步创建request对象
4.新建一个Call对象
5.同步请求网络execute()
6.异步请求网络enqueue(Callback)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OkHttp,简单工厂模式被广泛应用于创建不同类型的拦截器。拦截器是OkHttp非常重要的一部分,它们可以在请求和响应的不同阶段进行拦截和处理。OkHttp提供了一个Interceptor接口,用户可以通过实现该接口来创建自定义的拦截器。而简单工厂模式则可以帮助我们更方便地创建不同类型的拦截器。 具体来说,OkHttp的拦截器分为两种类型:应用拦截器和网络拦截器。应用拦截器直接操作应用程序的请求和响应,而网络拦截器则操作OkHttp的请求和响应。在创建拦截器时,我们需要根据拦截器的类型来选择不同的创建方式。这时,简单工厂模式就可以派上用场了。 下面是一个简单的示例,演示了如何使用简单工厂模式创建不同类型的拦截器: ```java public class InterceptorFactory { public static Interceptor createInterceptor(InterceptorType type) { switch (type) { case LOGGING: return new LoggingInterceptor(); case AUTHENTICATION: return new AuthenticationInterceptor(); case CACHE: return new CacheInterceptor(); default: throw new IllegalArgumentException("Invalid interceptor type"); } } } public enum InterceptorType { LOGGING, AUTHENTICATION, CACHE } // 创建应用拦截器 Interceptor loggingInterceptor = InterceptorFactory.createInterceptor(InterceptorType.LOGGING); // 创建网络拦截器 Interceptor cacheInterceptor = InterceptorFactory.createInterceptor(InterceptorType.CACHE); ``` 在上面的示例,我们首先定义了一个InterceptorFactory类,该类包含一个静态方法createInterceptor,用于根据传入的InterceptorType参数创建不同类型的拦截器。在createInterceptor方法,我们使用了switch语句来根据不同的类型返回不同的拦截器实例。最后,我们可以通过调用createInterceptor方法来创建不同类型的拦截器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值