【全网首发】鸿蒙开源三方组件--HttpClient组件 Kalle 原创 精华
前言
基于安卓平台的HttpClient组件Kalle(https://github.com/yanzhenjie/Kalle )
实现了鸿蒙化迁移和重构,代码已经开源到(https://gitee.com/openneusoft/kalle )
欢迎各位下载使用并提出宝贵意见!
背景
Kalle是一个HttpClient,它遵循Http标准协议,支持同步请求和异步请求。
特性
- 支持GET、HEAD、OPTIONS、TRACE、POST、PUT、PATCH、DELETE请求方法
- 表单的提交,如普通字符串表单、带文件的表单(含多文件、大文件)
- 自定义RequestBody,如文件、字符串(JSON、XML、普通字符串)
- 支持SSL,默认不校验证书,开发者可以自定义证书
- 9种缓存模式,默认使用AES算法为缓存数据加密
- 自动管理Cookie,遵循Http协议,与浏览器实现相同原理
- 在任何时候取消请求,如未开始、正在执行时
- 全局反序列化转换器,直接请求JavaBean
- 基于拦截器的智能重定向与智能重试
- 支持开发者添加拦截器,例如Log打印、登录重试、参数签名
- 网络可用性缓存检查法,连接层可动态替换,如URLConnection、OkHttp或者ApacheHttpClient
组件示例效果
请求列表信息
上传文件
下载文件
如何使用
配置
如果需要,我们可以做一些个性化的配置,但是所有的配置项都不是必须的。
配置的Api如下:
连接
Kalle是一个完全独立的网络库,它不限制任何实现Http协议底层连接库,因此它允许开发者自行决定使用何种底层连接库,比如URLConnection、OkHttp、HttpClient。为了减小编译后Kalle的大小,Kalle默认提供了基于URLConnection的底层连接库(因为URLConnction是Java默认自带的),同时实现了基于OkHttp`的备用的底层连接库,有兴趣的开发者可以自行实现基于其它项目的底层连接库。
Http请求
Http请求从请求方法上可以分为两大类,我们把它们称为Url类请求(UrlRequest)和Body类请求(BodyRequest),因为一类只可以是简单的url,而另一类不仅仅可以是简单的url,也可以使用流来发送自定义RequestBody。
Url类的请求方法:
GET, HEAD, OPTIONS, TRACE
Body类的请求方法:
POST, PUT, DELETE, PATCH
对于Url类请求,需要构建UrlRequest,例如下面这段代码构建的UrlRequest,最终的url是http://www.example.com?name=kalle&password=123:
BodyRequest的用法和UrlRequest基本是完全一致的:
进度
进度监听一般用于Body类型的请求,一般用于表单文件上传、PUSH自定义RequestBody等。
基于表单时我们可以监听某个文件的上传进度,也可以监听整个表单的发送进度:
集成方式
自行编译工程entity、yoga、yoga_layout、fb生成libyoga.so、libfb.so、libyogacore.so
将其添加到要集成的libs文件夹内,在entity的gradle内添加如下代码。
方式一:
通过library生成har包,添加har包到libs文件夹内。
在entry的gradle内添加如下代码:
方式二:
附录1:相关资料
IDE官方下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio
原组件GitBook地址:https://yanzhenjie.com/Kalle
调用简单实用