微信小程序常用 api

2022/3/15 小程序

🌙 wx.request网络请求👉 (opens new window)

wx.request用于发起HTTPS请求,默认超时时间和最大超时时间都是60s。字啊小程序中只能使用HTTPS请求而不能使用HTTP请求,同事只能有五个网络请求连接。

// index.ts
// 获取应用实例
const app = getApp<IAppOption>()
console.log('app', app.globalData);
Page({
    data: {
        userInfo: {},
    },
    // 事件处理函数
    clickMe() {
        this.searchData()
    },
    // 数据请求函数
    searchData() {
        wx.request({
            url: 'https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web&wd=1&req=2&csor=1',
            header: {
                'Content-Type': 'application/json',
            },
            method: 'GET',  // 必须大写
            success(response) {
                // 请求成功,response
                console.log(response);
            },
            fail(err) {
                // 请求失败
                console.log('fail', err);
            },
            complete(e) {
                // 无论成功失败都会执行
                console.log('complete', e);
            }
        })
    },
    onLoad(query) {
        // 页面加载时请求数据
        this.searchData()
    },
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

🌙 wx.uploadFile上传👉 (opens new window)

wx.uploadFile将本地资源上传到服务器。客户端发起一个 HTTPS POST 请求,其中 content-typemultipart/form-data

上传文件最大并发限制为10个,默认超时时间和最大超时时间都是60s。

wx.chooseImage({
  success (res) {
    const tempFilePaths = res.tempFilePaths
    wx.uploadFile({
      url: 'https://example.weixin.qq.com/upload', //仅为示例,非真实的接口地址
      filePath: tempFilePaths[0],
      name: 'file',
      formData: {
        'user': 'test'
      },
      success (res) {
        const data = res.data
        //do something
      },
      fail (err) {
        //do something
      }
    })
  }
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

🌙 wx.downloadFile下载👉 (opens new window)

wx.downloadFile下载文件资源到本地。客户端直接发起一个 HTTPS GET 请求,返回文件的本地临时路径 (本地路径),单次下载允许的最大文件为 200MB。

下载文件最大并发限制为10个,默认超时时间和最大超时时间都是60s。

注意:请在服务端响应的 header 中指定合理的 Content-Type 字段,以保证客户端正确处理文件类型

wx.downloadFile({
  url: 'https://example.com/audio/123', //仅为示例,并非真实的资源
  success (res) {
    // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
    if (res.statusCode === 200) {
      wx.playVoice({
        filePath: res.tempFilePath
      })
    }
  },
  fail (err) {
    //do something
  }
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14