zoukankan      html  css  js  c++  java
  • 微信小程序 之 请求函数封装

    封装的request的代码
    /**
     * @desc    API请求接口类封装
     */
    /**
     * POST请求API
     * @param  {String}   url         接口地址
     * @param  {Object}   params      请求的参数
     * @param  {Object}   sourceObj   来源对象
     * @param  {Function} successFun  接口调用成功返回的回调函数
     * @param  {Function} failFun     接口调用失败的回调函数
     * @param  {Function} completeFun 接口调用结束的回调函数(调用成功、失败都会执行)
     */
    function requestPostApi(url, params, sourceObj, successFun, failFun, completeFun) {
        requestApi(url, params, 'POST', sourceObj, successFun, failFun, completeFun)
    }
    /**
     * GET请求API
     * @param  {String}   url         接口地址
     * @param  {Object}   params      请求的参数
     * @param  {Object}   sourceObj   来源对象
     * @param  {Function} successFun  接口调用成功返回的回调函数
     * @param  {Function} failFun     接口调用失败的回调函数
     * @param  {Function} completeFun 接口调用结束的回调函数(调用成功、失败都会执行)
     */
    function requestGetApi(url, params, sourceObj, successFun, failFun, completeFun) {
        requestApi(url, params, 'GET', sourceObj, successFun, failFun, completeFun)
    }
    /**
     * 请求API
     * @param  {String}   url         接口地址
     * @param  {Object}   params      请求的参数
     * @param  {String}   method      请求类型
     * @param  {Object}   sourceObj   来源对象
     * @param  {Function} successFun  接口调用成功返回的回调函数
     * @param  {Function} failFun     接口调用失败的回调函数
     * @param  {Function} completeFun 接口调用结束的回调函数(调用成功、失败都会执行)
     */
    function requestApi(url, params, method, sourceObj, successFun, failFun, completeFun) {
        if (method == 'POST') {
            var contentType = 'application/x-www-form-urlencoded'
        } else {
            var contentType = 'application/json'
        }
        wx.request({
            url:    url,
            method: method,
            data:   params,
            header: {'Content-Type': contentType},
            success: function (res) {
                typeof successFun  == 'function' && successFun(res.data, sourceObj)
            },
            fail: function (res) {
                typeof failFun     == 'function' && failFun(res.data, sourceObj)
            },
            complete: function (res) {
                typeof completeFun == 'function' && completeFun(res.data, sourceObj)
            }
        })
    }
    module.exports = { 
        requestPostApi,
        requestGetApi
    }
    使用第一步

    在app.js中引入封装的文件const request = require(‘./utils/request.js’) ,然后定义接口域名apiUrl: ‘https://www.geekxz.com‘,

    /**
     * @desc    简单API请求示例
     */
    const request = require('./utils/request.js')
    App({
      request: request,
      getUserInfo:function(cb){
        var that = this
        if(this.globalData.userInfo){
          typeof cb == "function" && cb(this.globalData.userInfo)
        }else{
          //调用登录接口
          wx.login({
            success: function () {
              wx.getUserInfo({
                success: function (res) {
                  that.globalData.userInfo = res.userInfo
                  typeof cb == "function" && cb(that.globalData.userInfo)
                }
              })
            }
          })
        }
      },
      /**
       * 定义的接口域名
       */
      apiUrl: 'https://www.geekxz.com',
      globalData:{
        userInfo:null
      }
    })
    调用封装好的方法
    var app = getApp()
    Page({
      /**
       * 存储页面数据
       */
      data: {
          expressData : {},
      },
      /**
       * 接口调用成功处理
       */
      successFun: function(res, selfObj) {
          selfObj.setData({
              expressData : res,
          })
      },
      /**
       * 接口调用失败处理
       */
      failFun: function(res, selfObj) {
          console.log('failFun', res)
      },
      /**
       * 页面加载时初始化数据
       */
      onLoad: function() {
          var url     = app.apiUrl+'/query'
          var params  = {
              type   : 'zhongtong',
              postid : '424621263550',
          }
          //@todo 网络请求API数据
          app.request.requestGetApi(url, params, this, this.successFun, this.failFun)
      }
    })

    .

  • 相关阅读:
    Codeforces Round #257 (Div. 2) E题:Jzzhu and Apples 模拟
    【浅墨Unity3D Shader编程】之二 雪山飞狐篇:Unity的基本Shader框架写法&颜色、光照与材质
    poj 1741 楼教主男人八题之中的一个:树分治
    Localhost 回环IP 127.0.0.1
    网络营销着陆页:怎么让游客成顾客?
    窗体的消息处理
    运行Java -jar somefile.jar时发生了什么(二)
    Why is processing a sorted array faster than an unsorted array(Stackoverflow)
    NYOJ 330 一个简单的数学题【数学题】
    Java 实现的断点下载
  • 原文地址:https://www.cnblogs.com/crazycode2/p/9364333.html
Copyright © 2011-2022 走看看