wx:微信小程序的 数据请求 及封装

调用文档里面提供的方法:直接搜索Request 就行 选中 wx.request 那一项
请求地址:https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html

<-- html -->
 <button type="primary" bindtap="demoGETfn">GET请求</button>
<button type="warn" bindtap="demoPostfn">Post请求</button>


// index.js页面
// Ge请求
  demoGETfn(){
    // 查文档
    // 拿到接口,再‘’‘’‘’‘’‘’‘’‘’‘’‘’‘根据接口参数  做请求
    wx.request({
      url: 'https://api.readhub.cn/topic',
      data: {
        pageSize: 10,
      },
      success (res) {
        console.log(res)
      }
    })
  },

// Post请求
  demoPostfn(){
    wx.request({
      url: 'http://kumanxuan1.f3322.net:8001/auth/loginByWeb',
      method: "Post",
      data:{
        username: "wx",
        pwd: "wx",
      },
      // 这里没有Promise风格的写法
      success(res){
          console.log(res);
      }
    })
  },

再来说一下数据请求的封装

1.先写一个require文件
function request(params) {
  // 封装网络请求的代码
  return new Promise(function (resolve, reject) {
    wx.request({
      url: params.url,
      data: params.data || {},
      header: params.header || {},
      method: params.method || 'GET',
      dataType: 'json',
      success: function(res) {
        resolve(res.data)
      },
      fail: function(err) {
        wx.showToast({
          title: err || '请求错误!',
        })
        reject(err)
      }
    })
  }) 
}
// nodejs common
module.exports = {
  requestApi: request
}

2.再用一个api.js文件接收
//(这里的服务器地址可以根据需求 进行替换)

// 开发的服务器
var baseUrl = 'http://kumanxuan1.f3322.net:8001'
// 测试的服务器
// var baseUrl = 'http://192.168.113.116:8637'
// 正式环境
// var baseUrl = 'http://www.mysite.com'

var homeApi = baseUrl + '/topic/list'
var loginApi = baseUrl + '/auth/loginByWeb'

module.exports = {
  homeApi: homeApi,
  loginApi: loginApi
}

3.在fetch.js文件里面写入接口函数并导出:

var api = require('./api.js')
var request = require('./requst.js')

function getHome(params) {
  return request.requestApi({
    url: api.homeApi
  })
}

function LoginFn(params) {
  return request.requestApi({
    url: api.loginApi,
    data: params,
    header: {
      'content-type': 'application/x-www-form-urlencoded'
    },
    method: 'POST'
  })
}

module.exports = {
  getHome: getHome,
  LoginFn: LoginFn
}
这样就完成了数据请求的封装, 后面的只要引用就行了。

如何引入
因为请求是向服务端发送的代码, 所以用 - require引入

 const fetch = require('../../request/fetch');
在方法里面调用
// Get请求
// 看文档
  demoGETfn(){
    fetch.getHome({
      page:1,
      size:20
    }).then(res => {
      console.log(res);
    })
  },


// Post请求
  demoPostfn(){
    fetch.LoginFn({
      username: "jx",
      pwd: "jx"
    }).then(res => {
      console.log(res);
    })
  },
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容