前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序 | 12-网络请求

小程序 | 12-网络请求

作者头像
CnPeng
发布2021-05-17 15:17:10
6820
发布2021-05-17 15:17:10
举报
文章被收录于专栏:CnPengDevCnPengDev

1. 介绍

官方 API 文档:

https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html

官方 指南 文档:

https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html

1.1. wx.request(Object object)

微信提供了 wx.request(Object object) 用来发起网络请求,

其中,object 可传递的内容包括:

1.2. 注意事项

在使用网络请求 API 前需要先在 小程序后台-开发-开发设置-服务器域名 中配置服务器域名。不配置的话触发网络请求时会报错。

测试阶段可以在 微信开发者工具 界面中勾选 详情-本地设置 中的 不校验合法域名

2. 基本使用

测试网络请求时,可以使用 httpbin.org

2.1. 无参 Get

代码语言:javascript
复制
// pages/about/about.js
Page({
  onLoad: function (options) {
    // 1. 基本的 Get 请求——不携带参数
    wx.request({
      url: 'http://httpbin.org/get',
      success: function (res) {
        // 接口请求成功时打印数据
        console.log(res)
      }
    })
  }
})

2.2. 有参 GET 请求

代码语言:javascript
复制
// pages/about/about.js
Page({
  onLoad: function (options) {
    // 2. Get 请求携带参数
    wx.request({
      url: 'http://httpbin.org/get',
      data:{  // 发起请求时携带的数据
        type:'sell',
        page:1
      },
      success:function(res){
        // 接口请求成功时打印数据
        console.log(res)
      },
      fail:function(err){
        // 接口请求失败
        console.log(err)
      }
    })
  }
})

2.3. 有参 POST 请求

代码语言:javascript
复制
// pages/about/about.js
Page({
  onLoad: function (options) {
    // 3. Post 请求携带参数
    wx.request({
      url: 'http://httpbin.org/post',
      method:'post',
      data:{  // 发起请求时携带的数据
        type:'sell',
        page:1
      },
      success:function(res){
        // 接口请求成功时打印数据
        console.log(res)
      }
    })
  }
})

3. 封装请求

降低网络请求和 wx.request() 的耦合,参考前端的网络框架——axios 使用 Promise 的方式封装一个工具类。

  • network.js
代码语言:javascript
复制
// 定义函数,并使用 es6 中的 export default 方式导出——让外部可以调用
export default function request(options) {
  // 此处使用了 Promise 语法
  return new Promise((resolve, reject) => {
    wx.request({
      url: options.url,
      method: options.method || "get",
      data: options.data || {},
      success:resolve,
      fail:reject
      // 下面两个函数可以简写为上面两行
      // success: function (res) {
      //   resolve(res)
      // },
      // fail: function (err) {
      //   reject(err)
      // }
    })
  })
}
  • about.js
代码语言:javascript
复制
// pages/about/about.js
// 此处导入时必须写相对于当前 js 的相对路径
import request from "../../services/network.js"

Page({
  onLoad: function (options) {
    // 调用自定义的 promise 方式的 request 函数
    request({
      url: 'http://httpbin.org/get',
    }).then(res => {
      console.log(res)
    }).catch(err => {
      console.log(err)
    })
  }
})
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CnPeng 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 介绍
    • 1.1. wx.request(Object object)
      • 1.2. 注意事项
      • 2. 基本使用
        • 2.1. 无参 Get
          • 2.2. 有参 GET 请求
            • 2.3. 有参 POST 请求
            • 3. 封装请求
            相关产品与服务
            云开发 CLI 工具
            云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档