原生微信小程序封装请求

1.页面根目录下新建api 文件夹,作用发起请求

2. api文件夹下建一个http.js 用来发送promise请求

import baseUrl from "./baseUrl"

var fun = function (config) {
    return new Promise((resolve, reject) => {
        wx.request({
            //url: 'url',//路径
            url: baseUrl + config.url,
            // timeout: 5000, //设置请求时间
            // data: {
            //     // 存放的数据
            // },
            // data:config.data,
            method:config.method,
            // method: "GET", //数据请求方式
            //   header:"",  请求头设置
            success: res => {
                resolve(res)
                console.log('res数据成功了', res);
            }
            // fail(err) {
            //     console.log('err数据请求失败了', err);
            // },
            // complete: res => {
            //     console.log("请求完成后的参数");
            // }
        })
    })
}
export default fun

http.js 同级新建js文件 baseUrl ,用来设置共同的请求头

export default "https://autumnfish.cn"

api 下新建 index文件夹 文件夹下 设置 index.js文件

import http from "../http"

function getList(data) {
    return  http({
        url: '/top/artists',// 放入除了baseUrl 的路径
        data ,//参数,
        method: "GET", 

    })
}
export  {getList}

在需要用到的地方

导入 
import {
    getList
}
from "../../api/index/index"
    onLoad(options) {
        getList({里面放请求的参数}).then(res => console.log(res.data.artists))
        
    },
### 微信小程序封装原生 `wx.request` 请求方法 为了提高代码的可维护性和复用性,在微信小程序开发中通常会对原生的 `wx.request` 进行封装。以下是具体实现过程: #### 创建文件结构 在项目根目录创建名为 `utils/request.js` 的文件用于存放封装后的请求函数[^3]。 #### 封装请求逻辑 通过 Promise 对象来处理异步操作,使得 API 调用更加简洁明了。下面是一个简单的封装实例: ```javascript // utils/request.js const baseUrl = 'https://yourapi.com'; // 替换成实际的基础URL function request(url, method = 'GET', data = {}, header = {}) { return new Promise((resolve, reject) => { wx.request({ url: `${baseUrl}${url}`, data, method, header: Object.assign({}, {'content-type': 'application/json'}, header), success(res){ resolve(res.data); }, fail(err){ reject(err); } }); }); } module.exports = { get: function (url, params={}, config={}) { return request(url, "GET", params, config); }, post: function (url, body={}, config={}) { return request(url, "POST", body, config); } }; ``` 此段代码定义了一个通用的 `request` 函数,并基于它实现了 GET 和 POST 方法的具体调用形式。这样做的好处是可以方便地统一管理基础 URL、默认头部信息以及错误处理机制等配置项[^1]。 #### 使用封装好的请求工具 当其他页面或模块需要发送 HTTP 请求时,只需引入这个工具即可轻松完成数据交互工作: ```javascript // pages/example/example.js var api = require('../../utils/request'); Page({ onLoad() { const param = {id: 1}; // 发送GET请求获取资源列表 api.get('/items', param).then(response => { console.log('成功:', response); }).catch(error => { console.error('失败:', error); }); // 发送POST请求提交表单数据 let formData = {"name": "张三"}; api.post('/submit', formData).then(response => { console.log('提交成功:', response); }).catch(error => { console.error('提交失败:', error); }); } }); ``` 上述例子展示了如何利用封装过的 `get()` 和 `post()` 方法来进行不同类型的HTTP请求。这种方式不仅简化了编码流程,还增强了程序的整体健壮性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值