微信小程序  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 相关文章推荐
JavaScript 读取元素的CSS信息的代码
Feb 07 Javascript
Javascript 面向对象 继承
May 13 Javascript
javascript使用eval或者new Function进行语法检查
Oct 16 Javascript
jQuery焦点图切换特效插件封装实例
Aug 18 Javascript
jQuery中toggle()函数的使用实例
Apr 17 Javascript
JS之相等操作符详解
Sep 13 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
Nov 28 Javascript
轻松理解JavaScript闭包
Mar 14 Javascript
解决layer弹层遮罩挡住窗体的问题
Aug 17 Javascript
JavaScript中引用vs复制示例详析
Dec 06 Javascript
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
Sep 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
PHP insert语法详解
2008/06/07 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
jquery html动态添加的元素绑定事件详解
2016/05/24 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
AngularJs  Creating Services详解及示例代码
2016/09/02 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
Python简单日志处理类分享
2015/02/14 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
大学生旷课检讨书1000字
2015/02/19 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
高质量“欢迎词”
2019/04/03 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
原生JavaScript实现简单五子棋游戏
2021/06/28 Javascript
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技