微信小程序  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 相关文章推荐
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
Jun 30 Javascript
jquery中eq和get的区别与使用方法
Apr 14 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
Feb 02 Javascript
Javascript表格翻页效果实现思路及代码
Aug 23 Javascript
jquery弹出层类代码分享
Dec 27 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 Javascript
JavaScript计算器网页版实现代码分享
Jul 15 Javascript
js方法数据验证的简单实例
Sep 17 Javascript
angular学习之从零搭建一个angular4.0项目
Jul 10 Javascript
JS实现简单的文字无缝上下滚动功能示例
Jun 22 Javascript
微信小程序点击item使之滚动到屏幕中间位置
Mar 25 Javascript
微信小程序 button样式设置为图片的方法
Jun 19 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
php数组的概述及分类与声明代码演示
2013/02/26 PHP
php递归函数中使用return的注意事项
2014/01/17 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
jquery 结合C#后台的数组对文章的关键字自动添加链接的代码
2011/07/15 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
深入浅析Node.js单线程模型
2017/07/10 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
Python将图片转换为字符画的方法
2020/06/16 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Flask框架web开发之零基础入门
2018/12/10 Python
漂亮的Django Markdown富文本app插件的实现
2019/01/02 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
Hotels.com印度:酒店预订
2019/05/11 全球购物
银行实习生自我鉴定范文
2013/09/19 职场文书
工作自荐信
2013/12/11 职场文书
自我反省检讨书
2014/01/23 职场文书
无毒社区工作方案
2014/05/23 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
继续教育个人总结
2015/03/03 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
幼儿园开学温馨提示
2015/07/15 职场文书
分析JVM源码之Thread.interrupt系统级别线程打断
2021/06/29 Java/Android