⼩程序request请求实例,⽹络请求。
最近⼩程序开始开放测试了,⼩程序提供了很多api,极⼤的⽅便了开发者,其中⽹络请求api是wx.request(object),这是⼩程序与开发者的服务器实现数据交互的⼀个很重要的api。
官⽅参数说明如下
OBJECT参数说明:
参数名类型必填说明
app开发实例url String是开发者服务器接⼝地址
data Object、String否请求的参数
header Object否设置请求的 header , header 中不能设置 Referer
method String否默认为 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
success Function否收到开发者服务成功返回的回调函数,res = {data: '开发者服务器返回的内容'}
fail Function否接⼝调⽤失败的回调函数
complete Function否接⼝调⽤结束的回调函数(调⽤成功、失败都会执⾏)
最简单的⽤法如下(以POST请求为例)
1 bindSearchChange:function(e){
2var keyword = e.detail.value;
3 wx.request({
4 url:'xxxxxxxxx',
5 data:{},
6 header: {'Content-Type': 'application/json'},
7 success: function(res) {
8 console.log(res)
9 }
10 })
11 }
下⾯我们把请求写在service⽂件下的http.js⽂件中,代码如下
1var rootDocment = 'hxxxxx';//你的域名
2function req(url,data,cb){
3 wx.request({
4 url: rootDocment + url,
5 data: data,
6 method: 'post',
7 header: {'Content-Type': 'application/json'},
8 success: function(res){
9return typeof cb == "function" && cb(res.data)
10 },
11 fail: function(){
12return typeof cb == "function" && cb(false)
13 }
14 })
15 }
16
17
ports = {
19 req: req
20 }
其中ports是将req⽅法暴露出去使得别的⽂件中可以使⽤该⽅法,由于js函数是异步执⾏的,所以return 的是回调函数,⽽不是具体的数据
为了其他⽂件⽅便调⽤此⽅法,我们在根⽬录的app.js⽂件中将其注册成为全局函数,如下
1//app.js
2var http = require('service/http.js')
3 App({
4 onLaunch: function () {
5//调⽤API从本地缓存中获取数据
6var logs = wx.getStorageSync('logs') || []
7 logs.w())
8 wx.setStorageSync('logs', logs)
9 },
10 getUserInfo:function(cb){
11var that = this
12if(this.globalData.userInfo){
13typeof cb == "function" && cb(this.globalData.userInfo)
14 }else{
15//调⽤登录接⼝
16 wx.login({
17 success: function () {
18 wx.getUserInfo({
19 success: function (res) {
20 that.globalData.userInfo = res.userInfo
21typeof cb == "function" && cb(that.globalData.userInfo)
22 }
23 })
24 }
25 })
26 }
27 },
28 globalData:{
29 userInfo:null
30 },
31 func:{
32 q
33 }
34 })
这时这个req就是全局的了,在调⽤时我们可以使⽤q()来调⽤,具体如下
1var app = getApp()
2 Page({
3 data: {
4
5 },
6 onLoad: function (opt) {
7//console.log(opt.name)
8 q('/api/get_data',{},function(res){
9 console.log(res)
10 });
11 }
12 })
⼩程序提供了很多api,包括⽹络,媒体,数据等,也提供了很多组件,使开发⼩程序变得很⽅便。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论