【UniApp】-uni-app-网络请求

前言

  • 经过上个章节的介绍,大家可以了解到 uni-app-pinia存储数据的基本使用方法
  • 那本章节来给大家介绍一下 uni-app-网络请求 的基本使用方法

步入正题

好,那么废话不多说,我们直接来看一下代码,搭建一个普通模板的项目,自行去搭建,大家都有相关的经验了,我就不多说了。

在首页页面,编写两个按钮分别发送 get 请求和 post 请求,代码如下:

vue 复制代码
<template>
	<view>
		<button type="primary" @click="reqGetFn">发送Get请求</button>
		<button type="primary" @click="reqPostFn">发送Post请求</button>
	</view>
</template>

<script setup>
	function reqGetFn() {
		uni.request({
			url: 'https://jsonplaceholder.typicode.com/posts',
			data: {
				text: 'BNTang'
			},
			method: "GET",
			header: {
				// 自定义请求头信息
				'custom-header': 'hello'
			},
			success: (res) => {
				console.log(res);
				console.log(res.data);
			}
		});
	}

	function reqPostFn() {
		uni.request({
			url: 'https://jsonplaceholder.typicode.com/posts',
			data: {
				text: 'BNTang'
			},
			method: "POST",
			header: {
				// 自定义请求头信息
				'custom-header': 'hello'
			},
			success: (res) => {
				console.log(res);
				console.log(res.data);
			}
		});
	}
</script>
  • 代码中,通过 uni.request(OBJECT) 来发起网络请求,OBJECT 是一个对象,其属性有:
  • url:开发者服务器接口地址
  • data:请求的参数
  • method:请求方法,有效值:GETPOSTPUTDELETECONNECTHEADOPTIONSTRACEUPLOAD,比较常用的是 GETPOST
  • header:自定义请求头信息
  • success:接口调用成功的回调函数
  • fail:接口调用失败的回调函数

好,我们来运行一下,看一下效果:

通过如上的示例,我觉得大家唯一有疑问的可能就是这个请求地址了,这个请求地址是我在网上搜索的一个在线的接口,可以用于测试学习使用:

我这里使用的是 JSON Placeholder:https://jsonplaceholder.typicode.com

封装网络请求

  • 通过如上的示例,我们可以看到,通过 uni.request(OBJECT) 来发起网络请求,是非常简单的,只需要传入相关的参数即可
  • 但是,我们在实际开发中,肯定是需要封装一下的,这样才能更好的使用,那么我们来封装一下

新建一个 tools 文件夹,然后在 tools 文件夹下新建一个 network.js 文件,代码如下:

javascript 复制代码
class ITRequest{
	request(url, method, data){
		return new Promise((resolve, reject)=>{
			uni.request({
				url: url,
				method: method,
				data: data,
				timeout: 3000,
				success: function(res){
					resolve(res.data);
				},
				fail: function(err){
					reject(err);
				}
			})
		})
	}
	get(url, data){
		this.request(url, "GET", data);
	},
	post(url, data){
		this.request(url, "POST", data);
	},
}

export default new ITRequest();

我封装好了,大家直接用即可非常的简单,因为在之前我也封装过对应原生的与 axios 等等相关的,都是一样的,好了本文就先介绍到这里,下一篇我再来给大家写一个项目(苹果计算器),给这个系列画上一个句号。

End

  • 如果你有任何问题或建议,欢迎在下方留言,我会尽快回复
  • 如果你觉得本文对你有帮助,欢迎点赞、收藏,你的支持是我写作的最大动力
相关推荐
微:xsooop2 天前
iOS 上架4.3a 审核4.3a 被拒4.3a 【灾难来袭】
flutter·unity·ios·uniapp
星光一影2 天前
同城派送系统源码,支持小程序,h5,app
mysql·小程序·php·uniapp
wx_xsooop2 天前
iOS 上架4.3a 被拒【uniapp专讲】
flutter·ios·uni-app·uniapp
我有一个object7 天前
uniapp上传文件报错:targetSdkVersion设置>=29后在Android10+系统设备不支持当前路径。请更改为应用运行路径!
前端·javascript·vue.js·uniapp
奇风11 天前
uni-app + DevEco 鸿蒙跨平台应用开发实战1-环境安装分享
uniapp·harmonyos·鸿蒙应用开发·鸿蒙跨平台应用开发
IT教程资源C15 天前
(N_144)基于微信小程序在线订餐系统
mysql·vue·uniapp·前后端分离·订餐小程序·springboot订餐
IT教程资源D18 天前
[N_144]基于微信小程序在线订餐系统
mysql·vue·uniapp·前后端分离·订餐小程序·springboot订餐
二当家的素材网20 天前
【无标题】
vue·uniapp
IT教程资源D21 天前
[N_148]基于微信小程序网上书城系统
mysql·vue·uniapp·前后端分离·网上书城小程序·springboot书城
星光一影1 个月前
打车/网约车、代驾、顺风车/拼车、货运、租车等多种出行服务的一站式解决方案
mysql·微信小程序·php·uniapp·html5·web app