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()
时,如果isAbsolute
为true
,则仍会增加‘/’ 以纠正地址生成 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
- 新增 安全取消
- 新增 实现下载拦截
- 新增
TimeoutIntercepter
和StatusCodeIntercepter
- 新增
TokenStorage
并且异步的GetTokenAsync
支持 OnTokenExpired 钩子函数 - 增强
JwtTokenIntercepter
支持异步的tokenFactory
- 新增 抽象接口
IHttpClientHander
和HttpClient.Send
允许使用自己编写的IHttpClientHander
1.0.0(2020-08-20)
上传到 插件市场