C端小程序
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

127 linhas
3.0 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. if (err.errMsg == 'request:fail timeout') {
  52. err.errMsg = '请求超时,请检查您的网络设置!'
  53. } else if (err.errMsg == 'request:fail '){
  54. err.errMsg = '未检查到您的网络,请检查您的网络设置!'
  55. } else if (err.code == 1052){
  56. wx.switchTab({
  57. url: '/pages/index/index',
  58. })
  59. }
  60. reject(err);
  61. }
  62. });
  63. });
  64. }
  65. /**
  66. * 提交数据
  67. * @param {url,data,headers} param0
  68. */
  69. post({ url, data, headers }) {
  70. headers = { ...this.headers, ...headers };
  71. url = `${this.address}${url}`;
  72. // wx.showLoading({
  73. // title: 'loading...',
  74. // })
  75. return new Promise((resolve, reject) => {
  76. wx.request({
  77. url: url,
  78. header: headers,
  79. data: data,
  80. method: "POST",
  81. success: res => {
  82. wx.hideLoading();
  83. this.responseMap(res, resolve, reject);
  84. },
  85. fail: err => {
  86. // wx.hideLoading();
  87. if (err.errMsg == 'request:fail timeout') {
  88. err.errMsg = '请求超时,请检查您的网络设置!'
  89. } else if (err.errMsg == 'request:fail ') {
  90. err.errMsg = '未检查到您的网络,请检查您的网络设置!'
  91. } else if (err.code == 1052) {
  92. wx.switchTab({
  93. url: '/pages/index/index',
  94. })
  95. }
  96. reject(err);
  97. },
  98. complete: res => {}
  99. });
  100. });
  101. }
  102. /**
  103. * 过滤 请求信息
  104. * @param {*} res
  105. * @param {*} resolve
  106. * @param {*} reject
  107. */
  108. responseMap = (res, resolve, reject) => {
  109. // 网络状态码200
  110. if (res.statusCode == 200) {
  111. // 服务器code 200 成功
  112. if (res.data.code == 200) {
  113. resolve(res.data);
  114. } else {
  115. reject(res.data);
  116. }
  117. }
  118. else {
  119. console.log("请求出错:", res);
  120. reject(res.data);
  121. }
  122. };
  123. /** 日志 */
  124. log(url, body, headers) {}
  125. }
  126. module.exports = new HttpBasics();