微信小程序  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遍历input取得input的name
Apr 27 Javascript
jquery利用ajax调用后台方法实例
Aug 23 Javascript
自己使用jquery写的一个无缝滚动的插件
Apr 30 Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
Google 地图事件实例讲解
Aug 06 Javascript
详解jQuery简单的表单应用
Dec 16 Javascript
Angular排序实例详解
Jun 28 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
AngularJS 多指令Scope问题的解决
Oct 25 Javascript
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
js实现星星打分效果
Jul 05 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
东方红 - 来复式再生机的修复
2021/03/02 无线电
php download.php实现代码 跳转到下载文件(response.redirect)
2009/08/26 PHP
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
php获取百度收录、百度热词及百度快照的方法
2015/04/02 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
JavaScript中的undefined学习总结
2013/11/30 Javascript
javaScript年份下拉列表框内容为当前年份及前后50年
2014/05/28 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
高效的jQuery代码编写技巧总结
2017/02/22 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
JavaScript中的E-mail 地址格式验证
2018/03/28 Javascript
nodejs微信开发之接入指南
2019/03/17 NodeJs
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
Python字典操作简明总结
2015/04/13 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
python一键升级所有pip package的方法
2017/01/16 Python
tensorboard显示空白的解决
2020/02/15 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
自荐书模板
2013/12/19 职场文书
小学庆六一活动方案
2014/02/28 职场文书
《春天来了》教学反思
2014/04/07 职场文书
药店促销活动策划方案
2014/08/24 职场文书
浅谈:电影《孔子》观后感(范文)
2019/10/14 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis