更新记录
1.0(2025-01-16) 下载此版本
1、首次发布
平台兼容性
Vue2 | Vue3 |
---|---|
√ | × |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.45 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 | 鸿蒙元服务 |
---|---|---|---|---|
× | × | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
app-x-uni-request-promise
API
import request from "@/uni_modules/app-x-uni-request-promise/js_sdk/index.uts"
import ResponseResult from "@/uni_modules/app-x-uni-request-promise/js_sdk/ResponseResult.uts"
请求方法别名
为了方便起见,已为所有受支持的请求方法提供了别名。
request.request(config)
request.get(url[, config])
request.delete(url[, config])
request.head(url[, config])
request.options(url[, config])
request.post(url[, data[, config]])
request.put(url[, data[, config]])
request.patch(url[, data[, config]])
注意
使用别名方法时,url、method、data 无需在 config 中配置。 目前不支持GET参数组装,请自行组装到URL尾巴
实例
可用的实例方法在下面列出。指定的配置将与实例配置合并。
request#request(config)
request#get(url[, config])
request#delete(url[, config])
request#head(url[, config])
request#post(url[, data[, config]])
request#put(url[, data[, config]])
request#patch(url[, data[, config]])
请求配置
请求配置除了uni.request
的参数(不包括方法),还有其他参数,除了url
为必须配置的参数,其他可使用默认参数
{
url: '/user',
method: 'get', // default
baseURL: 'https://api.example.com',
headers: {'X-Requested-With': 'XMLHttpRequest'},
data: {
firstName: 'Fred'
},
timeout: 60000,// default
withCredentials: false,// default
responseType: 'json', // default
}
响应信息(ResponseResult)
{
data: {},
status: 200,
headers: {},
config: {},
cookies:{}
}
使用 then 方式
request.get('/api/user/1111').then(function (response) {
console.log(response.data);
console.log(response.status);
console.log(response.headers);
console.log(response.config);
});
配置默认值
您可以指定将应用于每个请求的配置默认值。
全局 request 默认值
request.defaults.set("baseURL","https://api.example.com")
配置优先级
request.get('/longRequest', {
timeout: 5000,
});
拦截器
您可以先拦截请求或响应,然后再由 then 或处理 catch。
// 添加请求拦截器
request.interceptors.request.use(function (config:UTSJSONObject):Promise<UTSJSONObject> {
return Promise.resolve( config);
}, function (error:any):any {
// 对请求错误做些什么
// return Promise.reject(error);
return error;
});
// 添加响应拦截器
request.interceptors.response.use(function (response:ResponseResult) {
console.log("拦截器获取到response")
return Promise.resolve(response);
}, function (error:any):any {
// 对响应错误做点什么
//console.log(error,"拦截器获取到error")
return error;
});
错误处理
request.get('/api/user/1111').catch(function (error) {
});