微信小程式 http請求封裝
範例程式碼
wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, method:'POST', header: { 'content-type': 'application/json' }, success: function(res) { console.log(res.data) }, fail: function( res ) { fail( res ); } })
以上為小程式的基本http請求程式碼,實際程式碼中如果每次這樣來寫是比較繁瑣的,那我們就比較來做一下封裝。
那程式碼中我們比較關注什麼?
1.請求的參數,存取的介面
2.GET/POST...請求方式
3.請求參數統一處理(例如:加密、設定公共參數...)
4.請求成功返回的資料(例如:解密、抽離邏輯層資料)
5.請求失敗回饋
我們不關注什麼?
1.請求url(一般固定的配置在某個地方)
2.根據不同的介面規則做不同的請求參數(例如:參數加密等)
...
讓我們程式碼實操
network .js
var API_URL = 'http://localhost/loverule/api/api.php' var requestHandler = { params:{}, success: function(res){ // success }, fail: function() { // fail }, } //GET请求 function GET(requestHandler) { request('GET',requestHandler) } //POST请求 function POST(requestHandler) { request('POST',requestHandler) } function request(method,requestHandler) { //注意:可以对params加密等处理 var params = requestHandler.params; wx.request({ url: API_URL, data: params, method: method, // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT // header: {}, // 设置请求的 header success: function(res){ //注意:可以对参数解密等处理 requestHandler.success(res) }, fail: function() { requestHandler.fail() }, complete: function() { // complete } }) } module.exports = { GET: GET, POST: POST }
1.頁面中調用(以GET請求為例)
//导入js var network = require("../../utils/network.js") //写入参数 var params = new Object() params.api_name = "api_user_login" params.account = "hanqing" params.password = "123456" //发起请求 network.GET( { params: params, success: function (res) { console.log(res) //拿到解密后的数据,进行代码逻辑 }, fail: function () { //失败后的逻辑 }, })rrreee