HttpClient for uniapp(request 请求库) - 更新日志

1.4.1(2021-04-19)

Update: 2021/4/19

v1.4.1

  • 变更: HttpClient 现在废弃全局拦截器了, 全部都是实例,原来的方法仍然兼容, 现在可以为不同的 api 创建不同的HttpClient实例了。
  • 变更: 现在支持 httpclient.get({ url:'/api/do', ... }) 了,配置参数更加方便, 而且仍然兼容原来的接口
  • 新增: 我们支持原生微信了, 现在 UniRequestHandler 等,会在找不到 uni 对象的情况下使用 wx 对象。
  • 变更: httpclient.intercepters 实例的字段,类型从 Array<T> 变更为 IntercepterCollection extends Array , 带来了 insertBefore()insertAfter() 方法。
  • 变更: Demo 程序更新了, 带来了 拦截器的demo。

1.3.4(2021-02-19)

v1.3.4

  • 修复#7 setupDefault 导致的 StatusCode拦截器未添加到拦截器管道的问题
  • 修复 #5 Promose<null> 的 null 值 token 不被忽略的问题

1.3.3(2020-12-23)

update : 2020/12/23

v1.3.2

  • [fix] --- 修复Url 解析类的 pathAndQuery 会对仅包含query的Url增加'/' 的问题, 当 toString()时,如果 isAbsolutetrue,则仍会增加‘/’ 以纠正地址生成 v1.3.3
  • [fix] --- 修复 Url.add() 的代码问题

Update: 2020/12/22

  • [new] ----新增Url 解析类,用来拼接和检查url非常方便,妈妈再也不用担心怎么拼接url
  • [fix] ---- 修复Uni*ClientHandler 提前取消时返回 new CancelError()
  • [break-change]---- 重命名 IHttpClientHander => IHttpClientHandler, 以及相关的 UniRequestClientHandler等

1.3.2(2020-12-23)

Update: 2020/12/23

  • [fix] --- 修复Url 解析类的 pathAndQuery 会对仅包含query的Url增加'/' 的问题, 当 toString()时,如果 isAbsolute 为true,则仍会增加‘/’ 以纠正地址生成

Update: 2020/12/22

  • [new] ----新增Url 解析类,用来拼接和检查url非常方便,妈妈再也不用担心怎么拼接url
  • [fix] ---- 修复Uni*ClientHandler 提前取消时返回 new CancelError()
  • [break-change]---- 重命名 IHttpClientHander => IHttpClientHandler, 以及相关的 UniRequestClientHandler等

url 操作

// 拼接
 var urlstr = new Url('http://www.baidu.com').add(new Url('/?wd=uni-httpclient')).toString();
 //检查
 var url = new Url(urlstr);
 console.log(url.scheme) // http
 console.log(url.domain)  // www.baidu.com
 console.log(url.path) //  /
 console.log(url.queryString) //  ?wd=uni-httpclient
 console.log(url.pathAndQuery) // /?wd=uni-httpclient
 url.query['pn'] = 10
 console.log(url.toString())   // http://www.baidu.com/?wd=uni-httpclient&pn=10

1.3.1(2020-12-22)

Update: 2020/12/22

  • [new] ----新增Url 解析类,用来拼接和检查url非常方便,妈妈再也不用担心怎么拼接url
  • [fix] ---- 修复Uni*ClientHandler 提前取消时返回 new CancelError()
  • [break-change]---- 重命名 IHttpClientHander => IHttpClientHandler, 以及相关的 UniRequestClientHandler等

url 操作

// 拼接
 var urlstr = new Url('http://www.baidu.com').add(new Url('/?wd=uni-httpclient')).toString();
 //检查
 var url = new Url(urlstr);
 console.log(url.scheme) // http
 console.log(url.domain)  // www.baidu.com
 console.log(url.path) //  /
 console.log(url.queryString) //  ?wd=uni-httpclient
 console.log(url.pathAndQuery) // /?wd=uni-httpclient
 url.query['pn'] = 10
 console.log(url.toString())   // http://www.baidu.com/?wd=uni-httpclient&pn=10

1.2.11(2020-10-19)

Update: 2020/10/19

  • 修复 TimeoutIntercepter 在重试的时候不会重置计时器的问题
  • 新增 Task.fromResult, Task.fromError, new TaskSource().startAction 方法, 建议将promise 的操作放到 startAction 里面,否则应该使用try-catch。
  • 新增 MaxTimeoutIntercepter , 解决重试多次导致 超时被重置后,时间过长的问题
  • 新增 HttpClient.setupDefaults() 中 使用 maxTimeout 选项, 以及 httpClietn.get(url,query,header,option, { maxTimeout })
  • 修复大量的拦截器细微错误

1.2.8(2020-10-14)

Update: 2020/10/14

  • 新增 retryDelay 选项,重试间隔(RetryIntercepter
  • 新增 Task, TaskSource 类,解决Promise的设计缺陷
  • 修复 CancelToken 的设计问题

1.2.7(2020-09-18)

Update: 2020/9/18

  • 新增 RetryIntercepter 出错重试
  • 新增 HttpClient.setupDefaults(option) 来一次性启用所有的拦截器
  • 修复 使用@路径 导致的 定义文件无法使用问题
  • 新增 demo
  • 修复 拦截器管道无法重复调用的问题 await next(request) 可以调用多次了,详情请查看 RetryIntercepter

1.1.0(2020-08-30)

Update: 2020/8/30

  • 新增 安全取消
  • 新增 实现下载拦截
  • 新增 TimeoutIntercepterStatusCodeIntercepter
  • 新增 TokenStorage 并且异步的GetTokenAsync 支持 OnTokenExpired 钩子函数
  • 增强 JwtTokenIntercepter 支持异步的 tokenFactory
  • 新增 抽象接口 IHttpClientHanderHttpClient.Send 允许使用自己编写的 IHttpClientHander

1.0.0(2020-08-20)

上传到 插件市场