1.定义请求链接公共部分
1.1.公共的app.js中定义commomurl
![](https://img2022.cnblogs.com/blog/1359049/202206/1359049-20220614103346630-1530055318.png)
1.2.在util文件夹下面的https.js文件中去调用
![](https://img2022.cnblogs.com/blog/1359049/202206/1359049-20220614103406572-633821398.png)
1.3.使用
![](https://img2022.cnblogs.com/blog/1359049/202206/1359049-20220614103420373-55559531.png)
2.封装请求主体部分
const commondata = getApp()
let statusCode = {
'1': "网络出错",
"301": "永久重定向",
"401": "登录出错",
"403": "被禁止访问",
"404": "找不到",
"405": "错误请求方法",
"409": "冲突",
"413": "上传文件太大",
"500": "服务器错误"
}
// HTTP类 request函数:HTTP类的方法(类下面的函数称为方法)
class HTTP{
request({url, data={}, method="GET"}){
let thepromise = new Promise( (resolve, reject) => {
this._request(url, resolve, reject, data, method)
})
return thepromise
}
_request(url, resolve, reject, data={}, method="GET"){
wx.request({
method: method,
url: commondata.commonurl + url,
data: data,
header: {
"content-type": "application/json",
"appkey": commondata.appkey
},
success: (res) => {
let code = res.statusCode.toString()
if( code.startsWith("2") ){
// 当状态码是2开头的情况
resolve(res)
}else{
reject()
// 当状态码不是2开头的情况
this._showError(code)
}
},
fail: (err) => {
reject()
// 当断网的情况下,走fail函数
this._showError("1")
}
})
}
// 封装错误弹框类型
_showError(code){
wx.showToast({
"title": statusCode[code] ? statusCode[code] : statusCode[1],
"icon": "error",
"duration": 1500
})
}
}
export { HTTP }
3.在models模块中调用https-p.js
3.1.在模块models文件夹下面的classic.js中引入http.js
import { HTTP } from "../utils/https"
3.2.在bookModel类里面定义subComments方法
![](https://img2022.cnblogs.com/blog/1359049/202206/1359049-20220614104011644-1468798260.png)
4.在页面或者组件中使用subComments方法
4.1.在js文件中引入models模块的book.js文件
import { bookModel } from "../../models/book"
4.2.初始化bookModel
let bookmodel = new bookModel()
4.3.通过bookmodel.subComments方法来调用后台接口
![](https://img2022.cnblogs.com/blog/1359049/202206/1359049-20220614104349856-815403740.png)