uniapp 封装请求接口(完整代码可复制)

33 篇文章 6 订阅

项目目录如下:

1.配置URL:

在base.js中

let baseURL = '';
// 是否在控制台显示接口请求日志,本地环境启用,打包环境禁用
let showHttpLog = false;
// 测试环境
baseURL = 'http://192.168.111.42:3333/';
// 正式环境
// baseURL = 'XXXXX.XXXXX.com';
module.exports = {
	baseURL: baseURL,
	showHttpLog: showHttpLog
}

2.根据uniapp官网文档https://uniapp.dcloud.io/api/request/request?id=request封装请求:

在http.js中:

import {
	baseURL
} from './base.js'; //导入接口的前缀地址

export const myRequest = (options) => {
	return new Promise((resolve, reject) => {
		uni.request({
			url: baseURL + options.url, //接口地址:前缀+方法中传入的地址
			method: options.method || 'GET', //请求方法:传入的方法或者默认是“GET”
			data: options.data || {}, //传递参数:传入的参数或者默认传递空集合
			headers: {
			    'Authorization ': window.localStorage.getItem('token') //自定义请求头信息
			},
			success: (res) => {
				//返回的数据(不固定,看后端接口,这里是做了一个判断,如果不为true,用uni.showToast方法提示获取数据失败)
				// if (res.data.success != true) {
				// 	return uni.showToast({
				// 		title: '获取数据失败',
				// 		icon: 'none'
				// 	})
				// }
				// 如果不满足上述判断就输出数据
				resolve(res)
			},
			// 这里的接口请求,如果出现问题就输出接口请求失败
			fail: (err) => {
				console.log(err)
				reject(err)
			}
		})
	})
}

3.根据实际数据写接口:

例如login.js

import {myRequest} from './http.js'

export function login (config) {  //登录
	return myRequest({
		url:'login',
		method:'post',
		data:config
	})
}

4.在实际界面中引用

(此处省略表单校验,表单校验详解见https://blog.csdn.net/weixin_50606255/article/details/118417225

<script>
	import {login} from '../../network/login.js';
	export default {
		data() {
			return {
				
			}
		},
		methods: {
			// 登录接口
			login(config) {
				login(config).then(res => {
					const code = res.data.code;
					if (code === 100) {
						uni.showToast({
							title: '登录成功'
						})
						window.localStorage.setItem("token", res.data.data.token);
						uni.switchTab({
							url: "../home/home"
						})
					} else {
						uni.showToast({
							title: res.data.msg
						})
					}
				}).catch(err => {
					console.log(err)
				})
			},
			
			// 提交表单
			goPath(validateForm) {
				this.$refs[validateForm].validate(valid => {
					if (!valid) {
						    this.login(this.loginForm);
						}
					}
				})
			},
			
		}
	}
</script>

如有问题,欢迎留言!!

  • 31
    点赞
  • 153
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
以下是一个完整的uniapp网络请求接口封装代码: ```js // 封装请求函数 function request(url, data = {}, method = 'GET') { return new Promise((resolve, reject) => { uni.request({ url, data, method, header: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + uni.getStorageSync('token') }, success: res => { // 请求成功 if (res.statusCode === 200) { resolve(res.data) } else { reject(res) } }, fail: err => { // 请求失败 reject(err) } }) }) } // 定义接口基础地址 const baseUrl = 'https://api.example.com' // 封装接口请求函数 export function login(data) { return request(`${baseUrl}/login`, data, 'POST') } export function getUserInfo(userId) { return request(`${baseUrl}/user/${userId}`) } // ... 还可以继续封装其他接口请求函数 ``` 在上面的代码中,我们定义了一个 `request` 函数,用于发送网络请求。该函数接受三个参数:请求地址、请求数据和请求方式(默认为 GET)。在函数内部,我们使用 `uni.request` 函数发起请求,并根据请求结果调用 `resolve` 或 `reject` 函数。此外,我们在请求头中添加了一个名为 `Authorization` 的请求头,用于传递身份验证信息。 接着,我们定义了一个 `baseUrl` 常量,用于存储接口的基础地址。这样,在实际使用时,我们只需要在接口请求函数中指定相对地址即可。 最后,我们封装了两个接口请求函数:`login` 和 `getUserInfo`,分别用于登录和获取用户信息。我们可以在需要发送网络请求的地方,直接引入并调用以上封装好的接口请求函数。例如: ```js import { getUserInfo } from '@/api/user' getUserInfo('123456').then(res => { console.log(res) }) ``` 以上代码会调用 `getUserInfo` 函数,向服务器请求 id 为 123456 的用户信息。请求成功后,会将返回的数据打印到控制台中。 注意:上述代码仅为示例,实际使用时还需要根据具体情况进行修改和完善。例如,需要对请求参数进行校验和转换、对请求结果进行统一处理等。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值