?微信小程序request封裝

2022-07-11    分類: 網站建設

微信小程序request封裝
Request的做小程序是必不可少的,所有后端網絡請求都要用到request,雖然微信的request相對來說已經很簡潔,但對http status code的判斷,處理異常都不是很方便
首先新建一個request.js

class request {
constructor() {
this._header = {'content-type': 'application/x-www-form-urlencoded'}
}

/**
* 設置統一的異常處理
*/
setErrorHandler(handler) {
this._errorHandler = handler;
}

/**
* GET類型的網絡請求
*/
getRequest(url, data, header = this._header) {
return this.requestAll(url, data, header, 'GET')
}

/**
* DELETE類型的網絡請求
*/
deleteRequest(url, data, header = this._header) {
return this.requestAll(url, data, header, 'DELETE')
}

/**
* PUT類型的網絡請求
*/
putRequest(url, data, header = this._header) {
return this.requestAll(url, data, header, 'PUT')
}

/**
* POST類型的網絡請求
*/
postRequest(url, data, header = this._header) {
return this.requestAll(url, data, header, 'POST')
}

/**
* 網絡請求
*/
requestAll(url, data, header, method) {
return new Promise((resolve, reject) => {
wx.request({
url: url,
data: data,
header: header,
method: method,
success: (res => {
if (res.statusCode === 200) {
//200: 服務端業務處理正常結束
resolve(res)
//請求返回401 跳轉登陸
if(res.data.code=="401"){
wx.reLaunch({
url: '/pages/login/index',
})
}
} else {
//其它錯誤,提示用戶錯誤信息
if (this._errorHandler != null) {
//如果有統一的異常處理,就先調用統一異常處理函數對異常進行處理
this._errorHandler(res)
}
reject(res)
}
}),
fail: (res => {
if (this._errorHandler != null) {
this._errorHandler(res)
}
reject(res)
})
})
})
}
}

export default request

新建getApi.js

import request from './request.js'
import utilMd5 from './md5.js'
class getApi{
constructor() {
this._baseUrl = 'https:xxxx'
this._defaultHeader = {
'data-tupe': 'application/json'
}
this._request = new request
this._request.setErrorHandler(this.errorHander)
this._key = 'cdweb_net'
}

/**
* timestamp
*/
timestamp() {
//獲取當前時間戳
let timestamp = Date.parse(new Date());
timestamp = timestamp / 1000;
//獲取當前時間
let n = timestamp * 1000;
let date = new Date(n);
let Y = date.getFullYear(); //年
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1); //月
let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate(); //日
let h = date.getHours(); //時
let m = date.getMinutes(); //分
let s = date.getSeconds(); //秒
return Y.toString() + M + D + h + m + s;
}

/**
* 公共參數
*/
connDate(data) {
let timestamp = this.timestamp();
let conn = {
timestamp: timestamp,
token: utilMd5.hexMD5(timestamp + this._key),
}
return Object.assign(conn, data);
}

/**
* 統一的異常處理方法
*/
errorHander(res) {
console.error(res)
}

/**
* 驗證token
*/
getToken(session3rd) {
let url = "User/xxx"
let data = {
device_token: 'wechat',
session3rd: session3rd
}
return this._request.getRequest(this._baseUrl + url, this.connDate(data)).then(res => res.data)
}

/**
* 獲取項目
*/
getProject(session3rd, userID, cpage,k='') {
let url = "Project/xx"
let data = {
session3rd: session3rd,
userID: userID,
cpage: cpage,
k:k
}
return this._request.getRequest(this._baseUrl + url, this.connDate(data)).then(res => res.data)
}

}
export default getApi

最后在app。Js實例化
Import getApi from ‘./apis/request.js’
getApi:new getApi()

在pages里使用
Const app = getApp();

getdataList() {
app.getApi.getCourseList(this.data.xx)
.then(res => {

this.setData({
list: list
})
})
.catch(res => {
//you code
})
},

網站欄目:?微信小程序request封裝
本文網址:http://m.kartarina.com/news/176596.html

成都網站建設公司_創新互聯,為您提供網站維護面包屑導航小程序開發微信小程序虛擬主機外貿網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 色综合久久久无码中文字幕波多| 精品无码国产一区二区三区麻豆| 伊人蕉久中文字幕无码专区| 精品无码久久久久久久久久| 一本加勒比HEZYO无码资源网| 亚洲av专区无码观看精品天堂| 久久久久无码精品国产h动漫| 永久免费av无码入口国语片| 亚洲AV无码AV男人的天堂不卡| 变态SM天堂无码专区| 亚洲av片不卡无码久久| 亚洲精品无码久久不卡| 无码任你躁久久久久久| 亚洲AV综合色区无码另类小说| 精品久久久无码人妻字幂| 亚洲av无码国产综合专区| 国产成A人亚洲精V品无码| 伊人久久无码精品中文字幕| 亚洲av纯肉无码精品动漫| 久久久久久久人妻无码中文字幕爆| 国产成人精品无码一区二区三区 | 伊人无码精品久久一区二区| 亚洲Av无码乱码在线znlu| 亚洲国产AV无码一区二区三区 | 久久精品成人无码观看56| 日韩少妇无码喷潮系列一二三 | 无码区国产区在线播放| 小泽玛丽无码视频一区| 日韩精品无码区免费专区| 中文字幕无码高清晰| 无码人妻精品一区二区三区66 | 九九无码人妻一区二区三区| 精品国产a∨无码一区二区三区| 亚洲永久无码3D动漫一区| 国产丝袜无码一区二区三区视频| 国产精品无码免费专区午夜| 国产成人精品无码一区二区老年人 | 国产成人无码区免费内射一片色欲| 久久亚洲AV成人无码国产最大| 亚洲精品中文字幕无码A片老| 亚洲精品无码人妻无码|