更新记录

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) {

});

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问