Fly.js 一个基于Promise的、强大的、支持多种JavaScript运行时的http请求库. 有了它,您可以使用一份http请求代码在浏览器、微信小程序、Weex、Node、React Native、快应用中都能正常运行。同时可以方便配合主流前端框架 ,最大可能的实现 Write Once Run Everywhere。本文主要介绍一下如何在微信小程序中使用flyio。

简单用法请直接移步官方文档查看,https://github.com/wendux/fly

下面主要说一下它的拦截器的使用方法:

/**
* Created by zhengyi.fu on 2018/8/31.
*/
import Fly from 'flyio/dist/npm/wx'
const fly = new Fly()
const host = "https://rmall.ukelink.net"
//添加请求拦截器
fly.interceptors.request.use((request) => {
wx.showLoading({
title: "加载中",
mask:true
});
console.log(request);
// request.headers["X-Tag"] = "flyio";
// request.headers['content-type']= 'application/json';
request.headers = {
"X-Tag": "flyio",
'content-type': 'application/json'
}; let authParams = {
//公共参数
"categoryType": "SaleGoodsType@sim",
"streamNo": "wxapp153570682909641893",
"reqSource": "MALL_H5",
"appid": "string",
"timestamp": new Date().getTime(),
"sign": "string"
}; request.body && Object.keys(request.body).forEach((val) => {
if(request.body[val] === ""){
delete request.body[val]
};
});
request.body = {
...request.body,
...authParams
}
return request;
}); //添加响应拦截器
fly.interceptors.response.use(
(response) => {
wx.hideLoading();
return response.data;//请求成功之后将返回值返回
},
(err) => {
//请求出错,根据返回状态码判断出错原因
console.log(err);
wx.hideLoading();
if(err){
return "请求失败";
};
}
); fly.config.baseURL = host; export default fly;

用法:将此文件引入main.js然后直接挂载到vue原型上

import fly from './utils/fly'
Vue.prototype.$fly = fly;
 
然后在页面或者组件中直接使用:
this.$fly.request({
method:"post", //post/get 请求方式
url:"/mms/country/queryValidZoneListForMallHome",
body:{}
}).then(res =>{
console.log(res)
})

下面在介绍一种微信小程序内置的请求接口的方法:

/**
* Created by zhengyi.fu on 2018/8/31.
*/
const host = 'https://rmall.ukelink.net';
function request(url, method, data, header = {}) {
wx.showLoading({
title: '加载中' //数据请求前loading
})
return new Promise((resolve, reject) => {
wx.request({
url: host + url, //仅为示例,并非真实的接口地址
method: method,
data: data,
headers: {
'content-type': 'application/json' // 默认值
},
success: function (res) {
wx.hideLoading();
resolve(res.data)
},
fail: function (error) {
wx.hideLoading();
reject(false)
},
complete: function () {
wx.hideLoading();
}
})
})
}
function get(obj) {
return request(obj.url, 'GET', obj.data)
}
function post(obj) {
return request(obj.url, 'POST', obj.data)
} export default {
request,
get,
post,
host
}
用法:将此文件引入main.js然后直接挂载到vue原型上
import request from './utils/request'
Vue.prototype.$http = request;
 
然后在页面或者组件中直接使用:
this.$http.post({
url:"/mms/country/queryValidZoneListForMallHome",
data:{
"categoryType":"SaleGoodsType@sim",
"streamNo":"web_bss153570682909641893",
"reqSource":"MALL_H5",
"appid":"string",
"timestamp":1535706829096,
"sign":"string"
}
}).then(res =>{
console.log(res)
})

小程序mpvue中flyio的使用方法的更多相关文章

  1. 小程序mpvue中动态切换echarts图表

    如果你用mpvue,而且还想用echarts,那么这个包你可以以来一下 https://github.com/F-loat/mpvue-echarts 考虑到多个页面都休要用,所以抽出来作为一个组件, ...

  2. 总结微信小程序开发中遇到的坑

    总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...

  3. 微信小程序的onLaunch()方法和onShow()方法

    在app.js里面你会发现一个onLaunch()方法,这个方法是当小程序加载完毕后就执行的方法,此外,还有一个onShow()方法,先看下面的代码 app.js //app.js App({ onL ...

  4. 微信小程序开发过程中tabbar页面显示的相关问题及解决办法!

    在微信小程序的开发过程中如果有使用过tabbar的同学,我相信一定会遇到一些困扰.为什么有些时候代码中明明已经在app.json里面增加了tabbar,可以页面中就是不显示呢?可不可以有些页面显示ta ...

  5. 解决微信小程序开发中wxss中不能用本地图片

    微信小程序开发中wxss中不能用本地图片,我们可以用将我们的图片传到服务器上,然后直接引用在线地址.但是当我们没有服务器时,我们可以用"图床",这个具体可以百度.这里我们用第二种方 ...

  6. 微信小程序mpvue项目使用WuxWeapp前端UI组件

    前言:这是一篇简单粗暴的使用指南 在最近的小程序项目里前端UI框架最后选择使用WuxWeapp,这篇文章记录一下如何在小程序mpvue项目中使用该UI组件. 步骤一:下载源码 (地址在这里)主要是里面 ...

  7. 微信小程序引入腾讯地图API方法

    微信小程序大热,在小程序过程中,我们很多时候都会用到地图.不管是企业的地址,还是商家的配送都会用到地图: 我在刚写地图这一块时,在网上也参考了很多网友的方法,始终有Bug(类似于地图拖拽是画面抖动,无 ...

  8. 微信小程序开发教程 #043 - 在小程序开发中使用 npm

    本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...

  9. 全栈开发工程师微信小程序-上(中)

    全栈开发工程师微信小程序-上(中) width: 750rpx; 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位. 小程序 ...

随机推荐

  1. Python实现图片滑动式验证识别

    1 abstract 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类 ...

  2. SpringBoot常用配置,引入外部配置文件信息,热加载

    SpringBoot的配置文件格式 yml规范 SpringBoot的配置文件支持properties和yml,甚至还支持json. 更推荐使用yml文件格式: yml文件,会根据换行和缩进帮助咱们管 ...

  3. Springboot开启事务的支持

    主要分为两步 步骤一.在main方法加上@EnableTransactionManagement注解: @SpringBootApplication @EnableTransactionManagem ...

  4. Docker容器网络-实现篇

    通常,Linux容器的网络是被隔离在它自己的Network Namespace中,其中就包括:网卡(Network Interface).回环设备(Loopback Device).路由表(Routi ...

  5. Vuex + localStorage + html实现简易todolist

    1.项目结构 2.Vuex,什么是Vuex? 官方文档上的介绍是:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种 ...

  6. 设计模式:单例模式介绍及8种写法(饿汉式、懒汉式、Double-Check、静态内部类、枚举)

    一.饿汉式(静态常量) 这种饿汉式的单例模式构造的步骤如下: 构造器私有化:(防止用new来得到对象实例) 类的内部创建对象:(因为1,所以2) 向外暴露一个静态的公共方法:(getInstance) ...

  7. 使用 VMware Workstation Pro让 PC 提供云桌面服务——学习笔记(三)

    目标 当在前面两篇博客后,我们已经创建了一个能当服务器的虚拟机,这时我们需要通过复制虚拟机来让创建更多虚拟机 操作步骤 1.创建克隆 这里主要是VMware软件的操作 虚拟机->管理->克 ...

  8. 用前端姿势玩docker【五】快速构建中类Unix系统与Windows系统的差异化处理

    目录 用前端姿势玩docker[一]Docker通俗理解常用功能汇总与操作埋坑 用前端姿势玩docker[二]dockerfile定制镜像初体验 用前端姿势玩docker[三]基于nvm的前端环境构建 ...

  9. Maven项目在进行单元测试报错:ClassNoFoundExceptipon

    解决方法: 只要把Java--------compiler-------building-------Buil path problems ------- incomplete build path ...

  10. 可以用命令行控制eclipse断点增加删除、远程调试创建与启动的插件

    java # 创建断点(支持条件断点) curl -X PUT -H "Content-Type:application/json" --data '{"language ...