request.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. class request {
  2. static BASE_URL = 'https://llzlovesh.top/api/'
  3. static HEAD = {
  4. "Content-Type": "application/json",
  5. "defaultToken": 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpYXQiOjE2MTY5MDg3NjAsImV4cCI6MjQ4MDgyMjM2MCwidXNlcklkIjoxMjM0NTY3ODksInZpc2l0b3IiOiJ2aXNpdG9yNjA2MDExZDg4NTQwYyIsImlzQWRtaW4iOjAsImFkbWluSWQiOjB9.7XrRxA3WYMBlqJWIXEw-71AxOxQvCc4VVVN6rlqn3uc',
  6. "token":'',
  7. }
  8. static constructor() {
  9. }
  10. /**
  11. * 设置统一的异常处理
  12. */
  13. static setErrorHandler(handler) {
  14. this._errorHandler = handler
  15. }
  16. /**
  17. * GET类型的网络请求
  18. */
  19. static getRequest(url, data, header = this.HEAD ) {
  20. const token = wx.getStorageSync('token')
  21. if (token) {
  22. header.token = token
  23. }else {
  24. header.token = header.defaultToken
  25. }
  26. return this.requestAll(url, data, header, 'GET')
  27. }
  28. /**
  29. * DELETE类型的网络请求
  30. */
  31. static deleteRequest(url, data, header = this.HEAD ) {
  32. const token = wx.getStorageSync('token')
  33. if (token) {
  34. header.token = token
  35. }else {
  36. header.token = header.defaultToken
  37. }
  38. return this.requestAll(url, data, header, 'DELETE')
  39. }
  40. /**
  41. * PUT类型的网络请求
  42. */
  43. static putRequest(url, data, header = this.HEAD ) {
  44. const token = wx.getStorageSync('token')
  45. if (token) {
  46. header.token = token
  47. }else {
  48. header.token = header.defaultToken
  49. }
  50. return this.requestAll(url, data, header, 'PUT')
  51. }
  52. /**
  53. * POST类型的网络请求
  54. */
  55. static postRequest(url, data, header = this.HEAD) {
  56. const token = wx.getStorageSync('token')
  57. if (token) {
  58. header.token = token
  59. }else {
  60. header.token = header.defaultToken
  61. }
  62. return this.requestAll(url, data, header, 'POST')
  63. }
  64. static upload(url, name, path, ortherData, header = this.HEAD){
  65. const token = wx.getStorageSync('token')
  66. if (token) {
  67. header.token = token
  68. }else {
  69. header.token = header.defaultToken
  70. }
  71. return new Promise((resolve, reject) => {
  72. wx.uploadFile({
  73. url: url,
  74. header: header,
  75. filePath: path,
  76. name: name,
  77. formData: ortherData,
  78. success: (res => {
  79. res.data = JSON.parse(res.data);
  80. if (res.data.code === 1) {
  81. //200: 服务端业务处理正常结束
  82. resolve(res.data)
  83. } else {
  84. if (res.data.code === 0){
  85. wx.showToast({
  86. title: res.data.message,
  87. })
  88. }
  89. if (res.data.code === 901) {
  90. _self.HEAD.token = ''
  91. }
  92. //其它错误,提示用户错误信息
  93. if (this._errorHandler != null) {
  94. //如果有统一的异常处理,就先调用统一异常处理函数对异常进行处理
  95. this._errorHandler(res)
  96. }
  97. reject(res)
  98. }
  99. }),
  100. fail: (res => {
  101. if (this._errorHandler != null) {
  102. this._errorHandler(res)
  103. }
  104. wx.showToast({
  105. title: '网络异常请,稍后再试~',
  106. })
  107. reject(res)
  108. })
  109. })
  110. })
  111. }
  112. /**
  113. * 网络请求
  114. */
  115. static requestAll(url, data, header, method) {
  116. const _self = this
  117. wx.showLoading()
  118. return new Promise((resolve, reject) => {
  119. wx.request({
  120. url: url,
  121. data: data,
  122. header: header,
  123. method: method,
  124. success: (res => {
  125. wx.hideLoading()
  126. if (res.data.code === 1) {
  127. //200: 服务端业务处理正常结束
  128. resolve(res.data)
  129. } else {
  130. if (res.data.code === 0){
  131. wx.showToast({
  132. title: res.data.message,
  133. })
  134. }
  135. if (res.data.code === 901) {
  136. _self.HEAD.token = ''
  137. }
  138. //其它错误,提示用户错误信息
  139. if (this._errorHandler != null) {
  140. //如果有统一的异常处理,就先调用统一异常处理函数对异常进行处理
  141. this._errorHandler(res)
  142. }
  143. reject(res)
  144. }
  145. }),
  146. fail: (res => {
  147. if (this._errorHandler != null) {
  148. this._errorHandler(res)
  149. }
  150. wx.showToast({
  151. title: '网络异常请,稍后再试~',
  152. })
  153. reject(res)
  154. })
  155. })
  156. })
  157. }
  158. }
  159. export default request