微信小程序  http请求封装详解及实例代码


Posted in Javascript onFebruary 15, 2017

微信小程序  http请求封装

示例代码

wx.request({
 url: 'test.php', //仅为示例,并非真实的接口地址
 data: {
   x: '' ,
   y: ''
 },
 method:'POST',
 header: {
   'content-type': 'application/json'
 },
 success: function(res) {
  console.log(res.data)
 },
 fail: function( res ) {
   fail( res );
  }
})

以上为小程序的基本http请求代码,实际代码中如果每次这样来写是比较繁琐的,那我们就来做一下封装。

那代码中我们比较关注什么?

1.请求的参数,访问的接口
2.GET/POST...请求方式
3.请求参数统一处理(比如:加密、设置公共参数...)
4.请求成功返回的数据(比如:解密、抽离逻辑层数据)
5.请求失败反馈

我们不关注什么?

1.请求url(一般固定的配置在某个地方)
2.根据不同的接口规则做不同的请求参数(比如:参数加密等)
...

让我们代码实操

network.js

var API_URL = 'http://localhost/loverule/api/api.php'

var requestHandler = {
  params:{},
  success: function(res){
    // success
  },
  fail: function() {
    // fail
  },
}

//GET请求
function GET(requestHandler) {
  request('GET',requestHandler)
}
//POST请求
function POST(requestHandler) {
  request('POST',requestHandler)
}

function request(method,requestHandler) {
  //注意:可以对params加密等处理
  var params = requestHandler.params;

  wx.request({
   url: API_URL,
   data: params,
   method: method, // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
   // header: {}, // 设置请求的 header
   success: function(res){
    //注意:可以对参数解密等处理
    requestHandler.success(res)
   },
   fail: function() {
    requestHandler.fail()
   },
   complete: function() {
    // complete
   }
  })
}

module.exports = {
 GET: GET,
 POST: POST
}

1.页面中调用(以GET请求为例)

//导入js
  var network = require("../../utils/network.js")

  //写入参数
  var params = new Object()
  params.api_name = "api_user_login"
  params.account = "hanqing"
  params.password = "123456"

  //发起请求
  network.GET(
  {
    params: params,
    success: function (res) {
     console.log(res)
     //拿到解密后的数据,进行代码逻辑

    },
    fail: function () {
     //失败后的逻辑

    },
  })

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
Jul 29 Javascript
基于JavaScript 声明全局变量的三种方式详解
May 07 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
bootstrap输入框组代码分享
Jun 07 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 Javascript
PHP实现本地图片上传和验证功能
Feb 27 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
Oct 17 Javascript
JS实现简单的浮动碰撞效果示例
Dec 28 Javascript
vue单页应用加百度统计代码(亲测有效)
Jan 31 Javascript
vuex actions传递多参数的处理方法
Sep 18 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 Javascript
如何优雅地取消 JavaScript 异步任务
Mar 22 Javascript
DOM事件探秘篇
Feb 15 #Javascript
详解Angularjs 如何自定义Img的ng-load 事件
Feb 15 #Javascript
js实现滑动到页面底部自动加载更多功能
Feb 15 #Javascript
JS 实现随机验证码功能
Feb 15 #Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
Feb 15 #Javascript
javascript设计模式之中介者模式学习笔记
Feb 15 #Javascript
javascript中apply/call和bind的使用
Feb 15 #Javascript
You might like
基于文本的访客签到簿
2006/10/09 PHP
phpwind中的数据库操作类
2007/01/02 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
七夕情人节丘比特射箭小游戏
2015/08/20 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
Vue 框架之动态绑定 css 样式实例分析
2018/11/14 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
在vue中通过render函数给子组件设置ref操作
2020/11/17 Vue.js
Python入门之三角函数sin()函数实例详解
2017/11/08 Python
python3.6的venv模块使用详解
2018/08/01 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
2020/02/27 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
python中time tzset()函数实例用法
2021/02/18 Python
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
J2EE模式面试题
2016/10/11 面试题
幼儿园大班区域活动总结
2014/07/09 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
2015年语文教师工作总结
2015/05/25 职场文书