/**
 * 请求方法,这里就写两种最常用的
 * 其他的请求方式同理(微信官网提供了OPTIONS,HEAD,PUT,DELETE,TRACE,CONNECT)
 */
function request_post(url, data) {
    let param = packagingParam(url, data, "POST", "application/x-www-form-urlencoded");
    return WXRequest(param);
  }
  function request_get(url, data) {
    let param = packagingParam(url, data, "GET", "application/x-www-form-urlencoded");
    return WXRequest(param);
  }
  function request_json_post(url, data) {
    let param = packagingParam(url, data, "POST", "application/json");
    return WXRequest(param);
  }
  function request_json_get(url, data) {
    let param = packagingParam(url, data, "GET", "application/json");
    return WXRequest(param);
  }
   
  /**
   * 封装参数
   */
  function packagingParam(url, data, method, contentType) {
    var param = {};
    param.url = url;
    param.data = data;
    param.method = method;
    param.contentType = contentType;
    return param;
  }
   
  /**
   * 发送请求
   * 这里的header只写了一种,一般都需要传输token,用户前后接口的调用的校验
   * 还有的加入了Cookie,加入到header中即可
   */
  function WXRequest(param) {
    //用于请求的计时
    console.time('请求用时:');
    //遮罩提示,这个可以写成公用的调用,这里就简单说明
    wx.showLoading({
      title: '加载中...',
      mask: true
    })
    return new Promise((resolv, reject) => {
      wx.request({
        url: "http://192.168.1.188"+param.url,
        data: param.data,
        method: param.method,
        header: {
          'Content-Type': param.contentType,
          'cookie':wx.getStorageSync('cookies')//后续请求携带cookie
        },
        success: function (res) {
          if(res.data == '服务器异常'){
            wx.showModal({
              title: '提示',
              content: '网络错误或服务器繁忙!',
            })	
          }else{
            if(param.url == "/LoginServlet"){
                wx.setStorage({//如果是登录就把登录信息保存到cookie
                    key:"cookies",
                    data:res.cookies
                })
            }
            resolv(res.data);
          }
        },
        fail: function (err) {
          reject(err)
          wx.showModal({
            title: '提示',
            content: '网络错误或服务器繁忙!',
          })
        },
        complete:function(com){
          wx.hideLoading();
          console.timeEnd('请求用时:' + param.url); 
        }
      })
    })
  }
  //最后把方法暴露出去
  module.exports = {
      request_post,request_get,request_json_post,request_json_get
  }

 

最后修改于 2021-12-07 16:26:22
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇