89 Star 579 Fork 132

ejlchina / okhttps

2021-06-22 09:44
1393412 ejlchina zhxu 1586596836 ejlchina

增强:Stomp 在 OnException 回调里也支持再次发起连接
参考:https://github.com/ejlchina/okhttps/issues/36

Last committed message: v3.1.2
2021-06-19 13:23
1393412 ejlchina zhxu 1586596836 ejlchina
  1. 新增:Stomp 异常回调:setOnException(OnCallback<Throwable> onException)
  2. 优化:AynscHttpTaskWebsocketTaskStomp 保证各回调设置方法的线程安全
  3. 修复:在 Android 5 系统上使用 Stomp 在断开连接时出现 找不到 Class 的问题
  4. 修复:在未设置 onConnected 回调时,Stmop 连接成功 但 isConnecting() 方法仍然返回 true 的问题
Last committed message: v3.1.1
2021-06-15 08:40
1393412 ejlchina zhxu 1586596836 ejlchina
  1. OkHttpsHttpUtils 开放 getHttp() 方法
  2. WebSocketTask 新增 close 方法,用于关闭当前连接
  3. 优化 WebSocketTask:同一时间只能建立一个连接,如果已经建立连接并未断开,重复调用 listen() 方法将直接返回原有连接
  4. Stomp 新增 disconnect(int maxWaitSeconds) 方法
  5. Stomp 新增 disconnect(boolean immediate) 方法,用于立即断开连接
  6. Stomp 新增 isConnecting()isDisconnecting() 方法
  7. Stomp 模块抽象出 MsgCodec 接口,使得编解码模块易于扩展
  8. Stomp 模块新增 MsgCodecImpl 实现类,并实现了半包粘包处理逻辑
Last committed message: v3.1.0
2021-06-10 10:10
1393412 ejlchina zhxu 1586596836 ejlchina

1、Stomp 在连接断开时重置 Subscriber 的状态,以便在重连后可以自动订阅
2、重构 bodyType 与 Content-Type 机制,实现用户可以指定在 Content-Type 头中是否携带字符编码

Last committed message: v3.0.3
2021-04-30 11:13
1393412 ejlchina zhxu 1586596836 ejlchina

1、不上传文件时,可以指定 form-data 格式的表单
2、修复:#I3OQ05:没有添加报文体参数时,POST 请求都会以 form 表单的形式提交
3、升级底层依赖

Last committed message: !12 v3.0.2
2021-03-16 13:27
1393412 ejlchina zhxu 1586596836 ejlchina

优化标签判断方法(严格模式)

Last committed message: !10 v3.0.1
2021-01-17 22:57
1393412 ejlchina zhxu 1586596836 ejlchina

1、项目分割,分离出 data 项目单独维护(JSON、XML 等结构化数据的统一抽象 API):
https://gitee.com/ejlchina-zhxu/data
2、依赖 data 项目中新增 HashMapper 与 ListArray 两个实现类
3、升级事项: 用到以下四个类需要重新导包:

v2.x v3.x
com.ejlchina.okhttps.DataSet com.ejlchina.data.DataSet
com.ejlchina.okhttps.Array com.ejlchina.data.Array
com.ejlchina.okhttps.Mapper com.ejlchina.data.Mapper
com.ejlchina.okhttps.TypeRef com.ejlchina.data.TypeRef
Last committed message: v3.0.0
2021-01-12 19:29
1393412 ejlchina zhxu 1586596836 ejlchina

1、Mapper 与 Array 接口新增 forEach 遍历方法
2、新增 okhttps-parallel 模块,实现多线程下载到不同的临时文件,最后再合并的需求
3、优化当使用多个 MsgConvertor 时,对 Body 进行 toXXX() 泛型转换时,自动开启 cache
4、优化 Download 模块,使支持多任务并行下载到同一个文件内
5、优化:方法 sync()、async() 与 baseUrl() 传入的 URL 自动 trim
6、优化异常提示文字,部分异常打印当前的 URL

Last committed message: v2.5.1 ^_^
2020-12-24 16:41
1393412 ejlchina zhxu 1586596836 ejlchina

API
1、 HTTP#Builder新增contentTypes方法,可扩展配置默认支持的请求类型
2、 HTTP#Builder新增clearPreprocessorsclearMsgConvertors方法
3、 HttpResult新增getTask方法,可获取所属的请求任务
4、 HttpResult新增of(HttpTask<?>, Response)方法,可构造一个HttpResult实例
5、 WebSocketTask新增flexiblePing(boolean)方法,当传参false时,可兼容某些强制客户端必须以固定的间隔发送心跳的服务器
6、 Stomp新增sendToTopicsendToQueue方法,
7、 Stomp新增isConnected方法,可直接判断连接是否已建立

优化
1、 优化自定义请求方法HttpTask#request()的参数处理:请求方法自动 toUpperCase,避免用户传入小写时造成意想不到的问题
2、 优化bodyTypemsgType的参数处理,自动 toLowerCase,避免用户传入大写时造成意想不到的问题
3、 使得未添加MsgConvertor时,使用setBodyPara(String|byte[])bodyType方法也能够发起对应格式的请求
4、 优化 Stomp 订阅与退订机制:同一个实例支持多线程并发订阅与退订操作
5、 优化 Stomp 消息匹配机制:兼容 RabbitMQ 在某些情况下的推送的 消息目的地 与 订阅目的地 不一致的情况
6、 优化 Stomp 连接的断开流程:在连接断开前保证已发消息到达服务器
7、 优化文件下载的异常处理流程

升级注意事项:
1、 类FileParaHttpTask中分离,不再是HttpTask的内部类,有直接引用FilePara的代码需要重新导包。

Last committed message: Merge branch 'dev' into v2.5.0
2020-12-02 10:33
1393412 ejlchina zhxu 1586596836 ejlchina

1、Websocket 新增 status() 方法
2、WebSocketTask 新增 isConnected() 方法,可判断连接是否已建立
3、抽象 DataSet(只读数据集)接口,Mapper 和 Array 为其子接
4、优化文件下载控制部分代码

因上版发布比较仓促,建议 v2.4.4 都升级到 v2.4.5

Last committed message: update doc
2020-11-26 19:13
1393412 ejlchina zhxu 1586596836 ejlchina

提升 WebSocket 模块的兼容性:增强型心跳机制兼容 Android 6.0(SDK 23)及以下版本

Last committed message: update README.md
2020-11-20 13:17
1393412 ejlchina zhxu 1586596836 ejlchina

新增特性:同一个网络请求结果 HttpResult 和 HttpBody 可以支持多线程并发访问(使用时无需再手动加锁)

Last committed message: V2.4.3
2020-09-17 10:15
1393412 ejlchina zhxu 1586596836 ejlchina

1、新增超轻量无第三方依赖的 XML 扩展模块
2、优化 gson 与 jackson 扩展模块

Last committed message: doc
2020-09-04 11:23
1393412 ejlchina zhxu 1586596836 ejlchina

1、修复 GsonMapper 和 GsonArray 在键值为空情况下,取值会报 JsonNull 异常问题
2、优化 STOMP 消息解析机制,修复服务器下发 ERROR 帧时会报异常问题
3、STOMP 新增 onError 回调,可监听处理服务器下发 ERROR 帧
4、兼容 spring-boot websocket 服务器,修改 STOMP 建立连接时的默认心跳数据内容,空 -> 换行符

Last committed message: Merge branch 'dev'
2020-08-27 20:27
1393412 ejlchina zhxu 1586596836 ejlchina

1、全面兼容 OkHttp 4.x 版本

2、HttpTask 新增 getPathParas()、getUrlParas()、getBodyParas()、getFileParas()、getRequestBody() 方法

3、优化HttpTask#addFilePara(String name, String type, byte[] content)方法,添加自动生成文件名逻辑,兼容某些必须要提供文件名才能接受到文件的后端接口

2020-07-21 12:23
1393412 ejlchina zhxu 1586596836 ejlchina

重新实现 WebSocket 心跳机制
使用者可以选择使用 OkHttp 自带的心跳模式,也可以选择使用 OkHttps 提供的增强型心跳机制,它具有如下特性

  • 1、客户端发送的任何消息都具有一次客户端心跳作用
  • 2、服务器发送的任何消息都具有一次服务器心跳作用
  • 3、若服务器超过 3 * pongSeconds 秒没有回复心跳,才判断心跳超时

详见文档:http://okhttps.ejlchina.com/v2/websocket.html#%E5%8D%95%E6%AC%A1%E5%BF%83%E8%B7%B3%E9%85%8D%E7%BD%AE%EF%BC%88since-v2-3-0%EF%BC%89

Last committed message: update README.md
2020-06-14 18:12
1393412 ejlchina zhxu 1586596836 ejlchina

1、增强泛型反序列化,支持复合泛型
2、HttpCall 接口新增 getTask 方法,可获取当前任务
3、OkHttps 工具类 新增 newBuilder 方法,可用于复用 SPI 方式注入的配置信息
4、HttpTask 类 新增 isAsyncHttp 和 isSyncHttp 方法(v2.1.0 新增了 isWebsocket 方法)可用于判断 HttpTask 的任务类型
5、优化在 Android 端的异步请求性能

2020-05-31 13:08
1393412 ejlchina zhxu 1586596836 ejlchina
  • 对异步请求的响应提供了 6 种便捷回调方法,在不关心具体状态时(与全局响应监听组合使用),使用非常方便;
    • setOnResBody 在回调里直接取得Body对象,无需再使用res.getBody()
    • setOnResBean 在回调里直接取得 Java Bean 对象,无需再使用res.getBody().toBean(Class<?>)
    • setOnResList 在回调里直接取得 Java List 列表,无需再使用res.getBody().toList(Class<?>)
    • setOnResMapper 在回调里直接取得 Mapper 对象,无需再使用res.getBody().toMapper()
    • setOnResArray 在回调里直接取得 Array 对象,无需再使用res.getBody().toArray()
    • setOnResString 在回调里直接取得 String 对象,无需再使用res.getBody().toString()

参阅文档:http://okhttps.ejlchina.com/v2/foundation.html#便捷回调

  • 优化性能:使用HTTP#newBuilder()方法克隆HTTP实例时,新实例与旧实例之间资源共享最大化。
Last committed message: Merge branch 'github' into dev
2020-05-25 08:12
1393412 ejlchina zhxu 1586596836 ejlchina

1、增强标签功能,可在拦截器内访问标签,
详见文档:http://okhttps.ejlchina.com/v2/foundation.html#%E4%BD%BF%E7%94%A8%E6%A0%87%E7%AD%BE

2、优化 全局监听的 执行环境:始终在 IO 线程执行,不再受 回调执行器 与nextOnIO方法的影响

3、优化 Websocket 回调,同其它回调一样,统一接受回调执行器与nextOnIO方法的管理

4、优化 Websocket 请求机制:同 HTTP 请求一样,接受全局监听的管理,打开 Websocket 时,执行 responseListener,异常时,执行 exceptionListener,关闭时(包括异常)执行,completeListener

5、优化 okhttps-jackson 对基本类型数据的取值逻辑,兼容性更好

6、修复 Android 7+(SDK 24 以上)中,当在主线程里消费报文体时(调用Body#toXxx()方法),会引发android.os.NetworkOnMainThreadException异常问题
参见 ISSUE: https://github.com/ejlchina/okhttps/issues/8

Java
1
https://gitee.com/ejlchina-zhxu/okhttps.git
git@gitee.com:ejlchina-zhxu/okhttps.git
ejlchina-zhxu
okhttps
okhttps

Search