uni-app封装请求方法与api封装调用

2 篇文章 0 订阅

1、封装请求创建request.js文件,把一下内容根据自己的需求更改。

//封装请求方法
//声明一个请求函数
const api_request=(url, method, parm)=>{
    console.log(1111111111);
  var apiurl    = getApp().globalData.BASE_URL+'/api.php';  //域名 + api.php
  
  
  var timestamp = Date.parse(new Date());
      timestamp = timestamp / 1000;    //获取当前时间戳

 //因为搜索、留言和表单需要用到POST方法,要通过data传递参数,所以先声明data对象,方便后面添加
  var data = {   
     timestamp: timestamp
  };

  //根据请求方法构建Header
  if (method == 'POST') {
    //POST方法,设置请求头部
    var header = { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' };

    //添加POST参数到data
    for (var i in parm) {
       data[i] = parm[i];
    }
  } else {
    //GET方法,设置请求头部
    method = 'GET';
    var header = { 'Content-Type': 'application/json' };
  }

  //通过promise返回数据
  var promise = new Promise(function(resolve,reject){
        
    //小程序自带的wx.request请求
    uni.request({
      method: method,
      url: apiurl + url,
      header: header,
      data: data,
      //请求成功
      success: function(res){
                
        var api_data = res.data;

        if (api_data.code != 1 && api_data.code != 0){

          reject({ error: '数据请求失败,请稍后重试', code: 500 });
          return;

        } else {

          resolve(api_data);
        
        }
      
      } 

    })

  })
    
    //返回数据
  return promise;

};
export default api_request

2、api封装:创建api.js来放你需要封装的api.

import api_request from "@/pages/api/request.js" //先导入封装好的request文件
//Api模块
//获取公司信息
const companyinfos = async () => {
	var url = '/cms/company';
	let data = await api_request(url);
	return data;
}
//获取网站信息
const siteinfos = async () => {
	var url = '/cms/site';
	let data = await api_request(url);
	return data;
}



uni.service = {
	companyinfos,
	siteinfos
} 

3、调用时

<script>
	
	export default {
		data() { 
			return {
				title: 'Hello'
			}
		},
		onLoad() {
		var that = this;  //划重点,这句千万不要忘掉了。
		
		
		that.getCompanyinfos();
		
		},
		methods: {
			async getCompanyinfos(){
				var that = this;
				//调用
				const res=await uni.service.companyinfos();
				
			}
		}
	}
</script>
Uni-app 是一个跨平台的开发框架,可以用于同时开发多个平台的应用程序。在 Uni-app 中进行网络请求时,可以使用封装的方式来简化请求过程,提高代码的复用性和可维护性。 以下是一个简单的示例,展示了如何封装一个网络请求方法: ```javascript // api.js // 导入uni-app的网络请求方法 import { request } from 'uni-app'; // 封装网络请求方法 export function get(url, data) { return request({ url: url, method: 'GET', data: data }); } export function post(url, data) { return request({ url: url, method: 'POST', data: data }); } ``` 在上述示例中,我们将 uni-app 提供的 `request` 方法进行了封装,创建了 `get` 和 `post` 方法,分别用于发起 GET 和 POST 请求。这样做的好处是可以统一处理请求的配置,例如设置请求头、处理响应等。 使用封装的网络请求方法时,只需在需要发送请求的地方引入 `api.js` 文件,并调用相应的方法即可: ```javascript // 使用网络请求方法 import { get, post } from './api.js'; // 发起 GET 请求 get('/api/data', { id: 1 }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); // 发起 POST 请求 post('/api/login', { username: 'admin', password: '123456' }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); }); ``` 通过封装网络请求方法,我们可以更方便地调用和管理网络请求,提高开发效率。当需要修改请求配置时,只需要在封装方法中进行修改,而不需要在每个请求的地方都修改一遍。同时,封装后的代码也更易读、易维护。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值