⼩程序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小时内删除。