小程序封装请求

Posted dashaxiong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序封装请求相关的知识,希望对你有一定的参考价值。

一般我会建立两个文件夹,一个是封装请求(request.js),一个是装api(api.js)

request.js

const api = require("./api.js").api.BASE_URL;
// var app = getApp()

// 网络请求
const https = ({
  url = ‘‘,
  data = {},
  method,
} = {}) => {
  wx.showLoading({
    title: ‘加载中...‘
  });
//  var sessionId = data.wx_id
  return new Promise((resolve, reject) => {
    wx.request({
      url: getUrl(url),
      method: method,
      data: data,
      header: {
        ‘Accept‘: ‘application/json‘,
        ‘content-type‘: ‘application/json‘,
  //      "session-id": sessionId
      },
      complete: (res) => {
        wx.hideLoading();
        console.log(url+‘接口返回数据如下‘);
        // console.log(res.data)
        // 成功的处理函数
        switch (res.data.code){
          case 1:
          //成功
            resolve(res.data)
            break
          case 0:
          // 失败
            // reject(res)
            resolve(res)
            break
          case 401:
          // 未授权或者过期
            reject(res)
            wx.showToast({
              title: ‘状态码 401‘,
            })
            break
          // 其他的code
          default:
            resolve(res)
            break
        }
      }
    });
  });
}
// 这个是为了怕有的接口是第三方的处理
const getUrl = (url) => {
  if (url.indexOf(‘://‘) == -1) {
    url = api + url;
  }
  return url
}

// get方法
const _get = (url, data = {}) => {
  return https({
    url,
    method: ‘GET‘,
    data
  })
}
// post方法
const _post = (url, data = {}) => {
  return https({
    url,
    method: ‘POST‘,
    data
  })
}
module.exports = {
  _get,
  _post,
  // send: send
}

  api.js

const api = {
  // 基础base_url
  BASE_URL: ‘https://shaolin.songshancn.com‘,
  // BASE_URL: ‘http://192.168.3.244:8001‘,
  // 获取用户ID
  sessionIdApi: ‘/member/get-wechat-user-id/‘,
  /******* 客服模块api *********/
  // 获取关键字回复的接口
  getReplyContent: ‘/service/get-ai-reply-content-api/‘,
  // 获取全部记录的接口
  getAllReply: ‘/service/get-reply-content-record-api/‘,
  // 获取智能客服回复中推荐路线接口
  getRoute:‘/service/get-recommended-route-api/‘,
  // 保存信息的接口
  saveReply:‘ /service/save-reply-content-record-api‘
}

module.exports = { api }

  页面用法

var api = require("../utils/api.js").api;
var http = require("../utils/request.js");

如果是根目录app.js在头顶引用的话,好像是不行,所以要把
var http = require("../utils/request.js");
放在onLaunch函数里面

http._get(api.getReplyContent, {}).then(res => {})

  

  

以上是关于小程序封装请求的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

promise封装小程序api请求

微信小程序 之 请求函数封装

小程序发起请求和上传图片的封装

小程序封装请求的步骤