微信小程序HTTP请求封装
微信小程序HTTP请求封装
最近做的事情有些许的乱,一会儿Android,一会儿Ionic,一会又微信小程序。现在又要搞一个微信小程序,需要用到HTTP请求,好吧,其实只要不是单机小游戏,都会用到HTTP请求,微信小程序官方提供了HTTP请求的方法,其实封装的很好了,直接用就行,但是还是在封装一次吧,好维护一点。
HTTP请求封装
首先在page文件夹下创建一个js文件夹存放封装的http请求,其实放哪里看自己需要,都行。
在js文件夹下创建一个http.js文件,里面是封装好的http请求代码,其实叫啥名都行,看你心情。
里面封装的代码是这个样子的:
/**
* TODO http请求封装
* 王佳伟
* 2020年3月19日13:43:48
*/
// 配置文件
const config = require('./config.js')
var app = getApp();
const host = config.httpServer; // 服务器baseUrl
/**
* POST请求,
* URL:接口
* postData:参数,json类型
* doSuccess:成功的回调函数
* doFail:失败的回调函数
*/
function postData(url, postData, doSuccess, doFail) {
wx.request({
//项目的真正接口,通过字符串拼接方式实现
url: host + url,
// 这个header根据你的实际改!
header: {
'Content-Type': 'application/json',
'cookie': config.httpToken,
'Request-Origin': 'app'
},
data: postData,
method: 'POST',
success: function (res) {
//参数值为res.data,直接将返回的数据传入
if (res.data.result.token) { // 如果有token保存下来,下次请求带着token访问
config.httpToken = res.data.result.token;
console.log("token--> ", config.httpToken)
}
doSuccess(res.data);
},
fail: function () {
doFail();
},
})
}
/**
* GET请求,
* URL:接口
* getData:参数,json类型
* doSuccess:成功的回调函数
* doFail:失败的回调函数
*/
function getData(url, getData, doSuccess, doFail) {
wx.request({
url: host + url,
header: {
'Content-Type': 'application/json',
'X-Access-Token': config.httpToken,
'Request-Origin': 'app'
},
method: 'GET',
data: getData,
success: function (res) {
doSuccess(res.data);
},
fail: function () {
doFail();
},
})
}
/**
* module.exports用来导出代码
* js文件中通过var http = require("../util/request.js") 加载
* 在引入引入文件的时候" "里面的内容通过../../../这种类型,小程序的编译器会自动提示,因为你可能
* 项目目录不止一级,不同的js文件对应的工具类的位置不一样
*/
module.exports.postData = postData;
module.exports.getData = getData;
里面使用了一个配置文件config.js,我把请求的服务器的BaseUrl放进去了,方便维护,config.js文件长下面这样:
module.exports = {
httpServer: "http://localhost", // 业务服务器地址 每个人的不一样,按照需要改!
httpToken: null, // 存放业务服务器提供的 token
}
HTTP 使用
首先在需要使用HTTP请求的地方引入。
var http = require('../js/http.js') // 每个人的路径不一样,按照自己的改
GET请求
http.getData('/getList', {}, (rep) => {
console.log(rep)
}, (error) => {
console.log(error)
})
POST请求
let canshu = {
'username': 'wjw',
'password': 'wjw'
}
http.postData('/login',canshu,(rep)=>{
if (rep.status && rep.status != 200) {
return;
}
console.log(rep);
})
好,就这样吧!
【版权声明】本博文著作权归作者所有,任何形式的转载都请联系作者获取授权并注明出处!
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
【重要说明】博文仅作为本人的学习记录,论点和观点仅代表个人而不代表技术的真理,目的是自我学习和有幸成为可以向他人分享的经验,因此有错误会虚心接受改正,但不代表此刻博文无误!
【博客园地址】叫我+V : http://www.cnblogs.com/wjw1014
【CSDN地址】叫我+V : https://wjw1014.blog.csdn.net/
【Gitee地址】叫我+V :https://gitee.com/wjw1014
分类:
微信小程序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!