C端小程序
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

124 行
2.7 KiB

  1. const config = require("../config/config.js");
  2. class HttpBasics {
  3. constructor(address) {
  4. if (address) {
  5. this.address = address;
  6. }
  7. }
  8. /**
  9. * 配置
  10. */
  11. config = config;
  12. /**
  13. * 请求路径前缀
  14. */
  15. address = config.url;
  16. /**
  17. * 请求头
  18. */
  19. headers = {
  20. "Content-Type": "application/json;charset=UTF-8",
  21. token: ""
  22. };
  23. /**
  24. * 设置token
  25. * @param {*} token
  26. */
  27. setToken(token) {
  28. this.headers.token = token;
  29. }
  30. /**
  31. * 获取数据
  32. * @param {url,data,headers} param0
  33. */
  34. get({ url, data, headers }) {
  35. headers = { ...this.headers, ...headers };
  36. url = `${this.address}${url}`;
  37. // wx.showLoading({
  38. // title: 'loading...',
  39. // })
  40. return new Promise((resolve, reject) => {
  41. wx.request({
  42. url: url,
  43. header: headers,
  44. data: data,
  45. method: "Get",
  46. success: res => {
  47. // wx.hideLoading();
  48. this.responseMap(res, resolve, reject);
  49. },
  50. fail: err => {
  51. // wx.hideLoading();
  52. if (err.errMsg == 'request:fail timeout') {
  53. err.errMsg = '请求超时,请检查您的网络设置!'
  54. }
  55. reject(err);
  56. }
  57. });
  58. });
  59. }
  60. /**
  61. * 提交数据
  62. * @param {url,data,headers} param0
  63. */
  64. post({ url, data, headers }) {
  65. headers = { ...this.headers, ...headers };
  66. url = `${this.address}${url}`;
  67. // wx.showLoading({
  68. // title: 'loading...',
  69. // })
  70. return new Promise((resolve, reject) => {
  71. wx.request({
  72. url: url,
  73. header: headers,
  74. data: data,
  75. method: "POST",
  76. success: res => {
  77. wx.hideLoading();
  78. this.responseMap(res, resolve, reject);
  79. },
  80. fail: err => {
  81. // debugger
  82. // wx.hideLoading();
  83. console.log(err)
  84. if (err.errMsg=='request:fail timeout'){
  85. err.errMsg='请求超时,请检查您的网络设置!'
  86. }
  87. reject(err);
  88. },
  89. complete: res => {}
  90. });
  91. });
  92. }
  93. /**
  94. * 过滤 请求信息
  95. * @param {*} res
  96. * @param {*} resolve
  97. * @param {*} reject
  98. */
  99. responseMap = (res, resolve, reject) => {
  100. console.log(res);
  101. // 网络状态码200
  102. if (res.statusCode == 200) {
  103. // 服务器code 200 成功
  104. if (res.data.code == 200) {
  105. resolve(res.data);
  106. } else {
  107. // wx.hideLoading();
  108. // wx.showToast({
  109. // title: res.data.message,
  110. // image:'./../../assets/img/fail.png'
  111. // });
  112. reject(res.data);
  113. }
  114. }
  115. else {
  116. console.log("请求出错:", res);
  117. reject(res.data);
  118. }
  119. };
  120. /** 日志 */
  121. log(url, body, headers) {}
  122. }
  123. module.exports = new HttpBasics();