微信小程序网络请求

官方地址:https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html

网络请求

微信提供了专门的API接口,用于发送网络请求: wx.request(object, object)

在调用接口时,要先在小程序中配置。小程序只能跟指定的域名进行网络通信。

但是在开发阶段,可以不校验合法域名(仅供开发)。


微信小程序网络请求_第1张图片
不校验合法域名

原生的网络请求

1. 最基本的get请求
wx.request({
  url: 'http://www.fujingwen.com:8000/api/ok',
  success: function(res){
    console.log(res);
  }
})

2. get请求,带参数
3. post请求
4. post请求,带参数
wx.request({
  url: 'http://httpbin.org/post', // 请求地址
  method: "post", // 请求的方式
  data: {         // 参数
    page: 1,
    name: "sell"
  },
  success: function(res){ // 请求成功的回调
    console.log(res);
  },
  fail: function(error){  // 请求失败的回调
    console.log(error);
  }
})

网络请求的参数

参数 类型 默认值 是否必填 说明
url string true 必填 接口地址
method string GET false 请求方法
data object false 参数
header Object false 一般用在登录的时候,token
dataype string false 返回数据的格式,一般是json

封装网络请求

为啥要封装:

  • 降低wx:request和网络请求的耦合度
  • 调用方式太古老了,我想使用promise的方式获取回调结果
    promise最大的好处是防止出现回调地狱

比如我新建一个js文件,封装网络请求

// 封装网络请求,promise的方式
export default function request(options){
  return new Promise((resolve, reject) => {
    wx.request({
      url: options.url,
      method: options.method || "GET",
      data: options.data || {},
      success: resolve,
      fail: reject,
    })
  })
}

使用:
import request from "./../../service/network.js";
request({
  url: "http://www.fujingwen.com:8000/api/ok"
}).then(res => {
  console.log(res);
}).catch(error => {
  console.log(error);
})

你可能感兴趣的:(微信小程序网络请求)