Tags: androids7/okhttps
Tags
Merge branch 'master' of https://gitee.com/ejlchina-zhxu/okhttps
1、增强标签功能,可在拦截器内访问标签(2.0.1 之前只能在 预处理器 与 全局监听里访问标签) 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: troyzhxu#8
1、修复 HEAD 请求方法不可用问题 2、新增 head 便捷请求方法 3、HttpResult 新增 getContentLength() 方法,HttpResult.Body 新增 getType() 和 getLength() 方法 4、WebSocket.Close 新增 是否因 连接被取消 和 连接发生异常而关闭 的 判断 5、优化:WebSocket 无论连接被取消还是异常,都会走 onClose 回调 6、fix issue: https://gitee.com/ejlchina-zhxu/okhttps/issues/I1H8G9
新特性: 1、HTTP 请求新增`patch()`方法,可发起 PATCH 请求,目前直接支持的HTTP方法有:GET、POST、PUT、PATCH、DELETE; 2、HTTP 请求暴露`request(String method)`方法,可自定义任何请求方法,比如:HEAD、OPTIONS、TRACE、CONNECT 等; 3、HTTP 请求新增`skipPreproc()`和`skipSerialPreproc()`,具体请求可跳过 所有 或只跳过 串行 预处理器; 4、新增`MsgConvertor`接口,实现 OkHttps 与 fastjson 解耦,且不再依赖某个具体 json 框架、甚至不依赖 json,它可以与 任何格式 的数据解析框架 集成,比如:json 解析框架、xml 解析框架、protobuf 解析框架等 5、HTTP 接口新增`webSocket(String url)`方法,支持连接预处理、消息数据自动序列化和反序列化机制、支持 Lamda 编程 6、HTTP.Buider 新增自定义默认编码(不自定义默认为 utf-8)功能,单个请求支持指定特殊编码 7、新增`OkHttps`工具类,支持 SPI 方式注入配置 8、构建 HTTP 实例时支持注入 多个 MsgConvertor,可实现同一个 HTTP 实例下,既有 json 解析,又有 xml 解析等强大特性。 API变化: 1、`HttpResult#Body#.toJsonObject()`修改为`HttpResult#Body#.toMapper()`,该方法返回一个`Mapper`实例(和 JsonObject 结构一样)。方法名之所以不再包含 Json 关键字,因为它可能根本就不是 json, 比如它是一个 xml,但是它都是一个具有 映射结构 的数据对象; 2、`HttpResult#Body#.toJsonArray()`修改为`HttpResult#Body#.toArray()`,该方法返回一个`Array`实例,命名原因同上; 3、HTTP 的 Builder 类迁移:com.ejlchina.okhttps.HttpClient.Builder -> com.ejlchina.okhttps.HTTP.Builder 4、OkHttpClient 的配置接口迁移:com.ejlchina.okhttps.Configuration - > com.ejlchina.okhttps.HTTP.OkConfig 5、移除 HTTP 接口与 HttpUtils 的`sync()`和`async()`无参方法,使用`sync(String url)`和`async(String url)`有参方法(参数可传 null) 6、不再推荐使用 HttpUtils.of(HTTP http) 方法,`HttpUtils`主要用于第三方jar开发时使用,可配置会产生干扰。主应用开发推荐使用`OkHttps`类。 7、不再推荐使用 HttpTask 的`addXxxParam`和`setXxxParam`系列方法,推荐使用简洁版的`addXxxPara`和`setXxxPara`系列方法 8、不再推荐使用 HttpTask 的`addJsonParam`和`setRequestJson`方法,推荐使用`addBodyPara`和`setBodyPara`方法。因为 json、xml 等请求参数,和 表单请求参数一样,都是 报文体(Body)的参数,另新增`bodyType`方法,用于指定是 form 还是 json 或是 xml 等类型。
PreviousNext