uniapp网络请求

  • uni.request(OBJECT)即为发送网络请求。
  • 详细参数说明请参考:uniapp官网
    uni.request({
	    url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
	    data: {
	       name: 'letter',
       	   age: 20
	    },
	    method:"POST",//method 有效值默认为get
	    header: {
	        'custom-header': 'hello' //自定义请求头信息
	    },
	    success: (res) => {
	        console.log(res.data);
	    }
   });

简单说明:

关于data 数据:
最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String。
关于post请求:
post 请求方式不加 header头会默认为options。
关于返回值:
返回一个 requestTask 对象,通过 requestTask,可中断请求任务。返回requestTask 对象需要至少传入 success / fail / complete 参数中的一个。

const requestTask = uni.request({
    url: 'https://www.example.com/request', //仅为示例,并非真实接口地址。
    data: {
        name: 'name',
        age: 18
    },
    success: function (res) {
        console.log(res.data);
    }
});
// 中断请求任务
requestTask.abort();

基于Promise封装uni-app的request方法。

1,特点:
①支持Promise API
②拦截请求和响应
③转换请求和响应数据
④取消请求
⑤自动转换为JSON数据
⑥超时请求
⑦告别callback
⑧支持默认请求前缀
⑨支持并发请求

2,在根目录下运行安装

npm install uni-request --save

3,全局配置:

uniRequest.defaults.baseURL = ‘https://yourapi.domain.com’;
uniRequest.defaults.headers.common[‘Authorization’] = AUTH_TOKEN;
uniRequest.defaults.headers.post[‘Content-Type’] = ‘application/x-www-form-urlencoded’;

4,文件中引用:

import uniRequest from ‘uni-request’;

5,get方式:

// 通过id向用户发出请求,方法一:
uniRequest.get('/user?id=1122334455')
    .then(function (response) {
        console.log(response);
    })
    .catch(function (error) {
        console.log(error);
    });

// 通过id向用户发出请求,方法二:
uniRequest.get('/user', {
    data: {
        id: 'number'
    }
}).then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});

// 如果使用 async/await,需将async关键字添加到外部函数/method
async function getUser() {
    try {
        const response = await uniRequest.get('/user?ID=1122334455');
        console.log(response);
    } catch (error) {
        console.error(error);
    }
}

6,post方式:

uniRequest.post('/user', {   
        firstname : 'firstname',
        lastname : 'lastname'    
}).then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});

你可能感兴趣的:(uniapp网络请求)