iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >【小程序】网络请求API介绍及网络请求的封装
  • 498
分享到

【小程序】网络请求API介绍及网络请求的封装

小程序网络微信小程序 2023-09-04 18:09:46 498人浏览 独家记忆
摘要

文章目录 网络请求基本演练和封装网络请求基本演练网络请求配置域名网络请求的封装 网络请求基本演练和封装 网络请求基本演练 微信提供了专属的api接口,用于网络请求: wx.req

文章目录

网络请求基本演练和封装

网络请求基本演练

微信提供了专属的api接口,用于网络请求: wx.request(Object object)

属性类型默认值必填说明
urlstring开发服务器接口地址
datastring/object/ArrayBuffer请求的参数
headerObject设置请求的 header,header 中不能设置 Referer。 content-type 默认为 application/JSON
timeoutnumber超时时间,单位为毫秒。默认值为 60000
methodstringGETHttp 请求方法
dataTypestringjson返回的数据格式
responseTypestringtext响应的数据类型

上面众多属性中比较关键的几个属性如下:

url: 必传, 不然请求什么.

data: 请求参数

method: 请求的方式

success: 成功时的回调

fail: 失败时的回调

网络请求API基本演练

一般我们都是在页面的onLoad生命周期中发送网络请求

直接通过wx.request(Object object)发送无参数GET请求:

Page({data: {allCities: {}},  // onLoad生命周期发送网络请求onLoad() {wx.request({// 发送网络请求的地址url: "http://123.207.32.32:1888/api/city/all",// 拿到请求的结果success: (res) => {// 将获取的结果保存到data中const data = res.data.datathis.setData({allCities: data})},// 拿到错误信息fail: (err) => {console.log(err);}})}})

直接通过wx.request(Object object)发送有参数GET请求:

Page({onLoad() {wx.request({url: 'http://123.207.32.32:1888/api/home/houselist',// 无论是POST请求还是GET请求, 参数都是在data中传递data: {page: 1},success: (res) => {console.log(res);},fail: (err) =>{console.log(err);}})}})

网络请求配置域名

每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信

小程序登录后台 – 开发管理 – 开发设置 – 服务器域名;

服务器域名请在 「小程序后台 - 开发 - 开发设置 - 服务器域名」 中进行配置,配置时需要注意

域名只支持 https (wx.request、 wx.uploadFile、 wx.downloadFile) 和 wss (wx.connectSocket) 协议;

域名不能使用 IP 地址(小程序的局域网 IP 除外)或 localhost;

可以配置端口,如 https://myserver.com:8080,但是配置后只能向 https://myserver.com:8080 发起请求。如果向https://myserver.com、 https://myserver.com:9091 等 URL 请求则会失败。

如果不配置端口。如 https://myserver.com,那么请求的 URL 中也不能包含端口,甚至是默认的 443 端口也不可以。如果 向 https://myserver.com:443 请求则会失败。

域名必须经过 ICP 备案;

出于安全考虑, api.weixin.qq.com 不能被配置为服务器域名,相关 API 也不能在小程序内调用。 开发者应将 AppSecret 保存到后台服务器中,通过服务器使用 getAccessToken 接口获取 access_token,并调用相关 API;

不支持配置父域名,使用子域名。


网络请求的封装

小程序提供的网络请求用起来是很繁琐的, 并且容易产生回调地狱, 因此我们通常会对小程序的网络请求进行封装

封装网络请求有两个思路:

思路一: 封装成一个函数

export function yqRequest(options) {return new Promise((resolve, reject) => {wx.request({ ...options,success: (res) => {resolve()},fail: reject })})}
  • 这样我们发送网络请求就可以使用该函数, 使用该函数发送网络请求就可以通过Promise或者async和await获取结果
import { yqRequest } from "../../service/index"Page({onLoad() {// 通过Promise获取结果yqRequest({url: "http://123.207.32.32:1888/api/city/all"}).then(res => {console.log(res);})yqRequest({url: 'http://123.207.32.32:1888/api/home/houselist',data: {page: 1}}).then(res => {console.log(res);})}})
import { yqRequest } from "../../service/index"Page({onLoad() {// 此处调用封装的异步函数this.getCityData()this.getHouseListData()},// 使用async和await获取结果, 为了防止同步最好再封装成独立方法async getCityData() {const cityData = await yqRequest({url: "http://123.207.32.32:1888/api/city/all"})console.log(cityData);},async getHouseListData() {const houseListData = await yqRequest({url: 'http://123.207.32.32:1888/api/home/houselist',data: {page: 1}})console.log(houseListData);}})

思路一: 封装成类(封装成类具备更强的扩展性)

// 网络请求封装成类class YQRequest {// 传入配置的baseurlconstructor(baseUrl) {this.baseUrl = baseUrl}request(options) {const { url } = optionsreturn new Promise((resolve, reject) => {wx.request({ ...options,url: this.baseUrl + url,success: (res) => {resolve(res)},fail: reject})})}get(options) {return this.request({ ...options, method: "get" })}post(options) {return this.request({ ...options, method: "post" })}}export const yqRequest = new YQRequest("http://123.207.32.32:1888/api")
  • 使用类的实例发送网络请求同样可以通过Promise或者async和await获取结果(这里不再演示async和await了)
import { yqRequest } from "../../service/index"Page({onLoad() {// 使用类的实例发送网络请求yqRequest.request({url: "/city/all"}).then(res => {console.log(res);})yqRequest.get({url: '/home/houselist',data: {page: 1}}).then(res => {console.log(res);})}})

来源地址:https://blog.csdn.net/m0_71485750/article/details/126427221

--结束END--

本文标题: 【小程序】网络请求API介绍及网络请求的封装

本文链接: https://www.lsjlt.com/news/394102.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【小程序】网络请求API介绍及网络请求的封装
    文章目录 网络请求基本演练和封装网络请求基本演练网络请求配置域名网络请求的封装 网络请求基本演练和封装 网络请求基本演练 微信提供了专属的API接口,用于网络请求: wx.req...
    99+
    2023-09-04
    小程序 网络 微信小程序
  • androidRetrofit2网络请求封装介绍
    目录1. Retrofit使用2. Retrofit封装3. RetrofitUtil使用最后1. Retrofit使用 Retrofit是一个现在网络请求框架,先来说一下怎么使用 ...
    99+
    2024-04-02
  • 微信小程序网络请求封装的示例分析
    这篇文章给大家分享的是有关微信小程序网络请求封装的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在这里首先声明一个小程序文档的bug,导致大伙们在请求的时候,服务器收到不...
    99+
    2024-04-02
  • 小程序中如何对网络请求进行二次封装
    这篇文章主要介绍了小程序中如何对网络请求进行二次封装,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、背景在做微信小程序开发的时候难免会涉及到网络请求操作,小程序提供的原生网...
    99+
    2023-06-25
  • 微信小程序怎么封装网络请求和拦截器
    这篇文章主要介绍“微信小程序怎么封装网络请求和拦截器”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么封装网络请求和拦截器”文章能帮助大家解决问题。1. 前言今天和合作伙伴对接代码的时候,...
    99+
    2023-07-05
  • 微信小程序网络请求模块封装的具体实现
    目录前言具体实现1.确定结构2.service网络请求的基本配置和公共方法3.apis创建对应功能模块的网络请求方法4.使用总结前言 在进行一个微信小程序项目开发的时候我需要网络请求...
    99+
    2024-04-02
  • fetch网络请求封装示例详解
    export default ({ url, method = 'GET', data = null, }) => { // 请求配置 let opt...
    99+
    2024-04-02
  • fetch网络请求封装示例分析
    本篇内容主要讲解“fetch网络请求封装示例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“fetch网络请求封装示例分析”吧!export default ({ ...
    99+
    2023-06-21
  • ajax网络请求封装的示例分析
    这篇文章主要为大家展示了“ajax网络请求封装的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ajax网络请求封装的示例分析”这篇文章吧。实例代码://...
    99+
    2024-04-02
  • vue网络请求方案原生网络请求和js网络请求库的示例分析
    这篇文章主要介绍vue网络请求方案原生网络请求和js网络请求库的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、 原生网络请求1. XMLHttpRequest(w3c标准)  &nbs...
    99+
    2023-06-21
  • Flutter网络请求Dio库的使用及封装详解
    目录一、项目目录结构二、封装思路:三、添加依赖四、简单实现网络请求五、实现登录注册服务六、使用service服务Dart语言内置的HttpClient实现了基本的网络请求相关的操作。...
    99+
    2024-04-02
  • Flutter网络请求Dio库的使用及封装方法
    这篇文章主要讲解了“Flutter网络请求Dio库的使用及封装方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Flutter网络请求Dio库的使用及封装方法”吧!Dart语言内置的Http...
    99+
    2023-06-30
  • Flutter网络请求框架Dio源码分析以及封装(一)--请求流程分析
    Flutter网络请求框架Dio源码分析以及封装--请求流程分析 前言目的请求流程-构造Dio对象请求流程-构造请求参数请求流程-构建请求流并添加拦截器请求流程-请求分发总结 前言 利用...
    99+
    2023-09-01
    flutter
  • 微信小程序封装网络请求和拦截器实战步骤
    目录1. 前言2. 思路2.1 封装网络请求2.2 统一处理状态码2.3 封装拦截器2.4 不同请求方式兼容2.5 全局存储用户登录信息2.6 完整代码3. 使用示例4. 注意事项5...
    99+
    2023-05-13
    小程序封装网络请求和拦截器 微信小程序封装网络请求 微信小程序封装拦截器
  • React网络请求发起方法详细介绍
    目录1. 发起网络请求2. 开发时网络请求代理配置1. 发起网络请求 首先需要安装 axios 库: yarn add axios 发起网络请求: import React, { C...
    99+
    2024-04-02
  • 微信小程序怎么实现网络请求
    这篇文章主要介绍“微信小程序怎么实现网络请求”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么实现网络请求”文章能帮助大家解决问题。最近微信小程序开始开放测试了,小程序提供了很多api,极...
    99+
    2023-06-26
  • Vue网络请求的三种实现方式介绍
    目录1.XMLHttpRequest发送请求2.fetch发送请求3.axios请求库(Vue中推荐写法)模拟发送get和post请求网络请求时发送用户认证信息请求拦截器响应拦截器用...
    99+
    2024-04-02
  • react使用axios进行api网络请求的封装方法详解
    目录前言准备工作开始封装axiosconfig.jsrequest.js进行请求总结前言 最近写react项目使用到axios进行请求封装,在这里记录一下,希望可以帮助到初学的小伙伴...
    99+
    2024-04-02
  • Python网络请求模块urllib与requests使用介绍
    目录urlib 介绍Requests 介绍无需参数直接请求单个页面带参数的 GET 请求发送 POST 请求Python 网络请求模块 urllib 、requests Python...
    99+
    2024-04-02
  • 详细介绍uniapp中网络请求的相关知识
    随着移动互联网的快速发展,移动端应用需求不断增加,网络请求成为了应用开发的必要部分。而uniapp框架则极大地方便了开发者,封装了常见的网络请求API,极大的降低了开发复杂度。本文将详细介绍uniapp中网络请求的相关知识。uni.requ...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作