You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

121 lines
3.0 KiB

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