介绍
这期内容当中小编将会给大家带来有关如何在微信小程序中封装网络请求,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
<强>网络请求强>
网络请求小程序提供了<代码>天气。请求> 代码,仔细看一下<代码> api> 代码,这不就是n年前的<代码>美元。ajax代码>吗,好古老啊。
//,官方例子 wx.request ({ ,url: & # 39; test.php& # 39;,,//仅为示例,并非真实的接口地址 ,数据:{ ,,,x: & # 39; & # 39;,, ,,,y: & # 39; & # 39; }, ,头:{ ,,& # 39;内容类型# 39;:,& # 39;application/json # 39;,//,默认值 }, ,成功:函数(res), { console.log才能(res.data) ,} })
小程序支持ES6,那么就应该支持答应了,很开心~,话不多说直接上代码吧
<强>承诺封装强>
const baseUrl =, & # 39; https://api.it120.cc& # 39;; const http =, ({=,, url  & # 39; & # 39;,, param =, {},,……other },=,{}),=祝辞,{ wx.showLoading({才能 ,,,标题:,& # 39;请求中,请耐心等待. . & # 39; ,,}); let 才能;timeStart =, Date.now (); return 才能;new 承诺((解决,,拒绝),=祝辞,{ ,,,wx.request ({ ,,,,,url:, getUrl (url), ,,,,,数据:,参数, ,,,,,头:,{ ,,,,,,,& # 39;内容类型# 39;:,& # 39;application/json # 39;,//,默认值,,另一种是,“content-type":,“应用程序/x-www-form-urlencoded" ,,,,,}, ,,,,,,, ,,,,,完成:,(res),=祝辞,{ ,,,,,,,wx.hideLoading (); ,,,,,,,console.log(“耗时$ {Date.now(),安康;timeStart}”); ,,,,,,,if (res.statusCode 祝辞=,200,,,,res.statusCode & lt;, 300), { ,,,,,,,,,解决(res.data) ,,,,,,,},{else ,,,,,,,,,拒绝(res) ,,,,,,,} ,,,,,} ,,,}) })才能 } const getUrl =, (url),=祝辞,{ if 才能;(url.indexOf (& # 39;://& # 39;),==, 1), { ,,,url =, baseUrl +, url; ,,} return 才能;url }//,让方法 const _get =, (url, param =,{}),=祝辞,{ http ({return 才能; ,,,的url, ,,参数 })才能 } const _post =, (url, param =,{}),=祝辞,{ http ({return 才能; ,,,的url, ,,,参数, ,,,方法:,& # 39;文章# 39; })才能 } const _put =, (url, param =,{}),=祝辞,{ http ({return 才能; ,,,的url, ,,,参数, ,,,方法:,& # 39;把# 39; })才能 } const _delete =, (url, param =,{}),=祝辞,{ http ({return 才能; ,,,的url, ,,,参数, ,,,方法:,& # 39;把# 39; })才能 } module.exports =, { baseUrl,才能 get,才能 _post才能, _put才能, _delete才能 }
<强>使用强>
const api =,需要(& # 39;. ./. ./跑龙套api.js& # 39;)//,单个请求 api.get(& # 39;列表# 39;),然后(res =祝辞,{ ,console.log (res) }).catch (e =祝辞,{ ,console.log (e) })//,一个页面多个请求 Promise.all ([ ,api.get(& # 39;列表# 39;), ,api.get(“细节/$ {id}”) ))(result =祝辞,{ ,console.log(结果) }).catch (e =祝辞,{ ,console.log (e) })
<>强登陆问题强>
做一个应用,肯定避免不了登录操作。用户的个人信息啊,相关的收藏列表等功能都需要用户登录之后才能操作。一般我们使用令牌做标识。
小程序并没有登录界面,使用的是<代码>天气。登录代码>。<代码>天气。登录> 代码会获取到一个<代码> 代码>代码,拿着该代码<> >代码去请求我们的后台会最后返回一个<代码>标记代码>到小程序这边,保存这个值为令牌每次请求的时候带上这个值。
一般还需要把用户的信息带上比如用户微信昵称,微信头像等,这时候就需要使用wx。getUserInfo,这里涉及到一个用户授权的问题
带上用户信息就够了嘛?太年轻太简单!我们的项目不可能只有小程序,相应的微信公众平台可能还有相应的应用,我们需要把账号系统打通,让用户在我们的项目中的账户是同一个。这就需要用到微信开放平台提供的UnionID。
<>强登陆强>
//app.js 应用程序({ ,onLaunch: function (), { console.log才能(& # 39;App onLaunch& # 39;); var 才能;that =,;//,才能获取商城名称 wx.request({才能 ,,,url: & # 39; https://api.it120.cc/& # 39; +, that.globalData.subDomain + & # 39;/config/get-value& # 39; null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null如何在微信小程序中封装网络请求