商城系統(tǒng) 注冊

小程序簡單封裝http訪問網(wǎng)絡(luò)庫

2018-06-26|HiShop
導(dǎo)讀:之前都是使用LeanCloud為存儲,現(xiàn)在用傳統(tǒng)API調(diào)用時(shí)做封裝 ...

之前都是使用LeanCloud為存儲,現(xiàn)在用傳統(tǒng)API調(diào)用時(shí)做如下封裝

小程序簡單封裝http訪問網(wǎng)絡(luò)庫

文檔出處:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html

代碼如下:

  1. var HOST = 'https://localhost/lendoo/public/index.php/';
  2. // 網(wǎng)站請求接口,統(tǒng)一為post
  3.  
  4. function post(req) {
  5. //發(fā)起網(wǎng)絡(luò)請求
  6. wx.request({
  7. url: HOST + req.uri,
  8. data: req.param,
  9. header: {
  10. "content-type": "application/x-www-form-urlencoded"
  11. },
  12. method: 'POST',
  13. success: function (res) {
  14. req.success(res.data)
  15. },
  16. fail: function (res) {
  17. console.log(res);
  18. }
  19. })
  20. }
  21. // 導(dǎo)出模塊
  22.  
  23. module.exports = { post: post
  24. }

然后前端調(diào)用就可以這樣做了:

  1. var http = require('../../utils/http.js');
  2. ...
  3. http.post({
  4. uri: http.orderListUri,
  5. param: {
  6. third_session: wx.getStorageSync('third_session')
  7. },
  8. success: function (data) {
  9. that.setData({
  10. orderList: data
  11. });
  12. }
  13. });

一般對自己寫的接口給自己用的時(shí)候,method方法或header都是約定好的,所以不用重復(fù)書寫。

  1. header: {
  2. "content-type": "application/x-www-form-urlencoded"
  3. },
  4. method: 'POST'

而fail回調(diào)方法也可以統(tǒng)一處理;進(jìn)一步地,也可以對success回調(diào)里的針對code值進(jìn)一步判斷,特定錯誤碼統(tǒng)一處理,比如跳轉(zhuǎn)登錄頁面等。

經(jīng)過上述處理,是不是變得簡潔了?

電話咨詢 預(yù)約演示 0元開店