微信小程序  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 相关文章推荐
xtree.js 代码
Mar 13 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
javascript中的变量作用域以及变量提升详细介绍
Oct 24 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
js动态创建及移除div的方法
Jun 03 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
Mar 11 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
深入理解jQuery之事件移除
Jun 02 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
Oct 12 Javascript
详解Bootstrap各式各样的按钮(推荐)
Dec 13 Javascript
vue中v-text / v-html使用实例代码详解
Apr 02 Javascript
layui 阻止图片上传的实例(before方法)
Sep 26 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
加速XP搜索功能堪比vista
2007/03/22 PHP
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
golang 调用 php7详解及实例
2017/01/04 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
JS兼容浏览器的导出Excel(CSV)文件的方法
2014/05/03 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
傻瓜式解读koa中间件处理模块koa-compose的使用
2018/10/30 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
Python实现的ini文件操作类分享
2014/11/20 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
Python3解释器知识点总结
2019/02/19 Python
python中的 zip函数详解及用法举例
2020/02/16 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
Abe’s of Maine:自1979以来销售相机和电子产品
2016/11/21 全球购物
求职自荐书范文
2013/12/04 职场文书
质量月口号
2014/06/20 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
安全生产工作汇报
2014/10/28 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS