小程序Request的另类用法详解


Posted in Javascript onAugust 09, 2019

前言

小程序中唯一能发送网络请求接口数据的是wx.request接口,当然这个接口存在诸多的限制,例如:10个并发请求限制,https限制(当然在开发阶段是可以关闭此限制),除了wx.request还有其他方法可以实现类型的功能吗?当然是有的,这个思路也源于我之前看到的一篇文章,随便笔记下来

思路

使用云开发来发送网络请求并把数据返回给小程序端。还不了解的云开发的同学请速度移步到官方【云开发】
新建一个http的云函数

// 云函数入口文件
const cloud = require('wx-server-sdk')
const axios = require('axios')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
 const wxContext = cloud.getWXContext()
 const { method, url, data } = event;
 const res = await axios.request({
  method: method,
  url: url,
  data: data
 });
 return { code: 1, data: res.data } || {code: -1, msg: 'error', data: null}
}

小程序端二次封装云函数调用

async http(options = {}) {
  return wx.cloud.callFunction({
    name: 'http',
    data: {
      method: options.method || 'GET',
      url: options.url || '',
      data: options.data || {}
    }
  }).then(res => {
    return res.result
  })
},

小程序端使用

async onLoad() {
  this.http({
   method: 'GET',
   url: 'https://www.baidu.com'
  }).then(res => {
   console.log(res)
  })
 },

总结

这种方法可以很好绕过https的限制,当然这只是提供一个简单的思路,我们可以进一步细一点封装,包括配置header proxy 等等功能,其实原理就是借助云函数做了二次转发,性能上肯定比不上原生的request

注意

async 和 await 语法糖在最新的开发工具中已经实现了,开启增强编译即可使用,具体更新内容请移步官方社区 微信小程序社区

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery源码分析-04 选择器-Sizzle-工作原理分析
Nov 14 Javascript
网页前端优化之滚动延时加载图片示例
Jul 13 Javascript
jquery事件与函数的使用介绍
Sep 29 Javascript
简单介绍JavaScript中字符串创建的基本方法
Jul 07 Javascript
JS+CSS实现滑动切换tab菜单效果
Aug 25 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
Oct 27 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 Javascript
jQuery轻松实现无缝轮播效果
Mar 22 jQuery
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
Feb 06 Javascript
在vant中使用时间选择器和popup弹出层的操作
Nov 04 Javascript
Rust中的Struct使用示例详解
Aug 14 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
Aug 09 #Javascript
vue中组件通信的八种方式(值得收藏!)
Aug 09 #Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 #Javascript
使用Vue CLI创建typescript项目的方法
Aug 09 #Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
Aug 09 #Javascript
微信小程序如何连接Java后台
Aug 08 #Javascript
vue 实现Web端的定位功能 获取经纬度
Aug 08 #Javascript
You might like
PHP调用Webservice实例代码
2011/07/29 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
2014/04/24 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
PHP实现数据库的增删查改功能及完整代码
2018/04/18 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2006/11/24 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
JS基础之undefined与null的区别分析
2011/08/08 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
jQuery 3.0十大新特性最终版发布
2016/07/14 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
jQuery使用ajax方法解析返回的json数据功能示例
2017/01/10 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
Webpack的dll功能使用
2018/06/28 Javascript
vue中的计算属性实例详解
2018/09/19 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
layui插件表单验证提交触发提交的例子
2019/09/09 Javascript
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
python实现flappy bird游戏
2018/12/24 Python
python+pyqt5编写md5生成器
2019/03/18 Python
python 简单的调用有道翻译
2020/11/25 Python
python函数超时自动退出的实操方法
2020/12/28 Python
为什么需要版本控制?
2013/08/08 面试题
大学生的四年学习自我评价
2013/12/13 职场文书
房屋财产继承协议书范本
2014/11/03 职场文书
死亡赔偿协议书
2015/01/28 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
仙境之桥观后感
2015/06/16 职场文书
2016学雷锋优秀志愿者事迹材料
2016/02/25 职场文书
《正面管教》读后有感:和善而坚定的旅程
2019/12/19 职场文书
详解Python描述符的工作原理
2021/06/11 Python
利用Python将list列表写入文件并读取的方法汇总
2022/03/25 Python