微信小程序  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 相关文章推荐
线路分流自动跳转代码;希望对大家有用!
Dec 02 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
回车直接实现点击某按钮的效果即触发单击事件
Feb 27 Javascript
jQuery DOM操作实例
Mar 05 Javascript
For循环中分号隔开的3部分的执行顺序探讨
May 27 Javascript
JavaScript实现点击按钮切换网页背景色的方法
Oct 17 Javascript
浅谈js内置对象Math的属性和方法(推荐)
Sep 19 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
Vuejs 单文件组件实例详解
Feb 09 Javascript
jquery获取select选中值的文本,并赋值给另一个输入框的方法
Aug 21 jQuery
使用gulp构建前端自动化的方法示例
Dec 25 Javascript
jQuery实现高级检索功能
May 28 jQuery
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 Session变量不能传送到下一页的解决方法
2009/11/27 PHP
php中运用http调用的GET和POST方法示例
2014/09/29 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
JavaScript中的定时器之Item23的合理使用
2015/10/30 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
Python3实现Web网页图片下载
2016/01/28 Python
Python爬虫DNS解析缓存方法实例分析
2017/06/02 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
python Django里CSRF 对应策略详解
2019/08/05 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
买卖正宗运动鞋:GOAT
2019/12/06 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
门卫班长岗位职责
2013/12/15 职场文书
小学信息技术教学反思
2014/02/10 职场文书
旷课检讨书1000字
2014/02/14 职场文书
文案策划岗位职责
2015/02/11 职场文书
2015年百日安全活动总结
2015/03/26 职场文书
农村党支部承诺书
2015/04/30 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android
Python实现PIL图像处理库绘制国际象棋棋盘
2021/07/16 Python
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle