1、修复 okhttps-fastjson
的 SPI 配置问题
2、升级 依赖 data
-> v1.5.2
com.ejlchina
-> cn.zhxu
com.ejlchina.*
-> cn.zhxu.*
okhttps-fastjson2
模块okhttps-fastjson2-jsonb
模块okhttps-jackson-xml
模块okhttps-jackson-yaml
模块okhttps-snack3
模块data
: v1.4.1
-> v1.5.1
WHttpTask
实例, 当连接异常后,不能再次调用 listen()
方法进行连接的问题WHttpTask
实例, 当连接异常后,不能再次调用 listen()
方法进行连接的问题HttpTask#addFilePara(String name, byte[] content, String fileName)
HttpTask#addFilePara(String name, InputStream stream, String fileName)
OnResBean
与 OnResList
便捷回调调用机制,修复其在 Android 上会回调失败的问题WebSocket
返回状态码 101
时,HttpResult#isSuccessful()
方法也返回 true
data
: v1.4.0
-> v1.4.1
: 修复 Array#toList(Class<T> type)
方法报错问题HttpTask
新增 Basic Auth 便捷方法:basicAuth(String username, String password)
HttpTask
新增 Bearer Auth 便捷方法:bearerAuth(String token)
HttpTask
新增 流式文件 上传方法:addFilePara(String name, String type, InputStream stream)
HttpTask
新增 流式文件 上传方法:addFilePara(String name, String type, String fileName, InputStream stream)
HttpTask
增强 setBodyPara(Object body)
方法:使其可以接受 InputStream
类型的 流式报文体 参数HttpTask
使用 ListMap
作为请求参数的内部集合容器:使其可以接受 多个同名参数 并可 保持参数的添加顺序
HTTP
的 HTTP.builder()
方法,使之支持通过指定系统环境变量来让该方法返回不同的构建器实现类HTTP.Builder
新增 clearContentTypes()
方法HttpResult
新增 allHeaders()
方法HttpTask
放松校验:移除 必须将路径参数占位符全部填充的 检查HttpTask
请求时 Content-Type
请求头 不再 默认携带 charset
信息AbstractHttpClient
的 mediaType
映射机制OkHttpBuilderImpl
常见的 mediaType
映射DownloadHelper
添加更多常见的扩展名映射java.util.function.Supplier
替代 com.ejlchina.okhttps.PingSupplier
接口java.util.function.Consumer
替代 com.ejlchina.okhttps.OnCallback
接口data
:v1.1.2
-> 1.4.0
:https://gitee.com/ejlchina-zhxu/data/releases
Mapper
新增 toBean(Class<T> type)
、toBean(TypeRef<T> type)
与 toBean(Type type)
方法Array
新增 toList(Class<T> type)
方法DataConvertor
新增:toMapper(String in)
、toArray(String in)
、serialize(Object object)
、toBean(Type type, String in)
、toList(Class<T> type, String in)
方法Deserializer
新增 getInstance()
方法fastjson
: v1.2.79
-> v1.2.80
jackson
: v2.12.6
-> v2.13.2.2
ListMap
接口 与 ArrayListMap
/ LinkedListMap
相关实现类HttpResult
的 getHeaders()
方法标记为已过时HttpResult.Body
的 getType()
方法标记为已过时application/x-www-form-urlencoded
指定 bodyType
时,不再强制需要添加表单序列化器connect()
与 disconnect(true)
被依次快速调用时,可能会报 "You must call connect before send" 异常的问题: https://github.com/ejlchina/okhttps/issues/59
isConnected()
方法:当内部的 websocket 连接被主动断开时,该方法立即返回 false
用到 Stomp 功能的同学可升级。
BUG FIXES:
JDK9+
的模块功能 时,JSON/XML 扩展包无法使用 SPI 完成自动配置的问题:https://github.com/ejlchina/okhttps/issues/56
用到 JDK9+
的模块功能 的同学可升级。
Stomp
,在 OnError/OnException
时重置 connecting
状态(v3.4.0 中已处理)WHttoTask#setMaxClosingSecs(int)
方法,使之支持链式调用(v3.4.2 中已处理)data
: v1.1.1 -> v1.1.2
(修复了 JacksonMapper 与 JacksonArray 在 getString 时 null 返回 "null" 的问题)(v3.4.2 中已处理)JDK9+
的模块功能 时,JSON/XML 扩展包无法使用 SPI 完成自动配置的问题DownloadHelper
默认支持 x-zip-compressed
到 zip
的扩展名映射DownloadHelper
不兼容 JDK8
与 JDK9
的问题HttpTask
新增 boundary(String boundary)
方法,用于自定义上传文件时 MultipartBody 的边界符addFilePara(..)
上传文件时,支持指定以 multipart/
开头的 bodyType
,来修改默认的 multipart/form-data
请求类型WHttoTask#setMaxClosingSecs(int)
方法,使之支持链式调用HTTP
实例时支持配置 DownloadHelper
,可自定义下载文件时文件名生成规则Content-Type
自动生成文件的扩展名功能同 v3.4.0,兼容 java8
1、重构: HttpTask # addBodyPara
方法,使支持多层 JSON 结构
2、优化: Stomp
,在 OnError/OnException
时重置 connecting
状态 https://github.com/ejlchina/okhttps/pull/46
type
参数,可直接传 MediaType 全称1、兼容 JDK9+
的模块引入机制
2、类 HTTP.Builder
接口化,试图与 okhttp3 解耦
3、以下 类名/包名 重构:
v3.3.0 以前 | v3.3.0 及以后 |
---|---|
com.ejlchina.okhttps.internal.SyncHttpTask |
com.ejlchina.okhttps.SHttpTask |
com.ejlchina.okhttps.internal.AsyncHttpTask |
com.ejlchina.okhttps.AHttpTask |
com.ejlchina.okhttps.internal.WebSocketTask |
com.ejlchina.okhttps.WHttpTask |
com.ejlchina.okhttps.internal.TaskExecutor |
com.ejlchina.okhttps.TaskExecutor |
com.ejlchina.okhttps.internal.HttpException |
com.ejlchina.okhttps.OkHttpsException |
com.ejlchina.okhttps.FastjsonMsgConvertor |
com.ejlchina.okhttps.fastjson.FastjsonMsgConvertor |
com.ejlchina.okhttps.GsonMsgConvertor |
com.ejlchina.okhttps.gson.GsonMsgConvertor |
com.ejlchina.okhttps.JacksonMsgConvertor |
com.ejlchina.okhttps.jackson.JacksonMsgConvertor |
com.ejlchina.okhttps.XmlMsgConvertor |
com.ejlchina.okhttps.xml.XmlMsgConvertor |
1、HttpTask 新增方法:addFilePara(String name, String type, String filePath)
2、HttpTask 新增方法:addFilePara(String name, String type, File file)
3、优化异步请求回调机制:取消请求时,仍然执行 OnComplete
回调
4、所有回调执行完毕后,HttpTask 不再可以取消,调用 cancel 时将返回 false
5、新增枚举 Download#Status
, 替换下载状态使用常量
6、下载控制器 Download#Ctrl
的 pause、resume 和 cancel 方法新增 boolean 返回值,表示是否操作成功
7、当下载指定的目标文件不存在时,同样执行 onFailure
回调
8、Download 新增 OnComplete
下载结束回调(成功、失败、取消都执行)
9、优化 HTTP.Builder.config(OkConfig config)
方法,支持多次注入配置
1、重构下载进度回调执行逻辑,提升下载性能
2、优化设置下载进度时,报文体输入流的实现,使支持available
与close
方法
3、修复网络波动时框架内部抛出非 IO 异常无法被异常监听捕获的问题
4、修复上传时进度回调不精确以及最后可能多次回调 100% 进度的问题
1、优化请求参数冲突校验逻辑
2、优化下载到目录时的文件名生成逻辑:使用系统文件连接符
3、优化 FormConvertor: 使支持配置是否使用 URLEncode