request.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. import util from './util.js'
  2. class request {
  3. static BASE_URL = 'http://www.lx.com:81/'
  4. // static BASE_URL = 'https://oapi.shpr.top/'//pre环境的
  5. // @todo需要修改正式的域名
  6. static HEAD = {
  7. "Content-Type": "application/json",
  8. "SIGN":'',
  9. "NONCE":'',
  10. "TIMESTAMP":'',
  11. }
  12. static constructor() {
  13. }
  14. /**
  15. * 设置统一的异常处理
  16. */
  17. static setErrorHandler(handler) {
  18. this._errorHandler = handler
  19. }
  20. /**
  21. * GET类型的网络请求
  22. */
  23. static getRequest(url, data ) {
  24. let headerSign = this.getSignHead();
  25. return this.requestAll(url, data, headerSign, 'GET')
  26. }
  27. /**
  28. * POST类型的网络请求
  29. */
  30. static postRequest(url, data) {
  31. let headerSign = this.getSignHead();
  32. return this.requestAll(url, data, headerSign, 'POST')
  33. }
  34. static upload(url, name, path, ortherData, header = this.HEAD){
  35. return new Promise((resolve, reject) => {
  36. wx.uploadFile({
  37. url: url,
  38. header: header,
  39. filePath: path,
  40. name: name,
  41. formData: ortherData,
  42. success: (res => {
  43. res.data = JSON.parse(res.data);
  44. if (res.data.code === 200) {
  45. //200: 服务端业务处理正常结束
  46. resolve(res.data)
  47. } else {
  48. wx.showToast({
  49. title: res.data.msg,
  50. })
  51. //其它错误,提示用户错误信息
  52. if (this._errorHandler != null) {
  53. //如果有统一的异常处理,就先调用统一异常处理函数对异常进行处理
  54. this._errorHandler(res)
  55. }
  56. reject(res)
  57. }
  58. }),
  59. fail: (res => {
  60. if (this._errorHandler != null) {
  61. this._errorHandler(res)
  62. }
  63. wx.showToast({
  64. title: '网络异常请,稍后再试~',
  65. })
  66. reject(res)
  67. })
  68. })
  69. })
  70. }
  71. static getSignHead(){
  72. let timestamp = parseInt(Date.now()/1000);
  73. let nonce = Math.floor(Math.random() * 1000).toString()
  74. let signStr = timestamp+nonce+""+"U6Watb875eCiX4Lq";
  75. let sign = util.sha1(signStr).toString();
  76. let signHeadInfo = {
  77. "SIGN":sign,
  78. "NONCE":nonce,
  79. "TIMESTAMP":timestamp,
  80. "Content-Type": "application/json"
  81. }
  82. return signHeadInfo;
  83. }
  84. /**
  85. * 网络请求
  86. */
  87. static requestAll(url, data, header, method) {
  88. wx.showLoading()
  89. return new Promise((resolve, reject) => {
  90. wx.request({
  91. url: url,
  92. data: data,
  93. header: header,
  94. method: method,
  95. success: (res => {
  96. wx.hideLoading()
  97. if (res?.data.code === 200) {
  98. //200: 服务端业务处理正常结束
  99. resolve(res?.data)
  100. } else {
  101. wx.showToast({
  102. title: res?.data?.msg,
  103. })
  104. //其它错误,提示用户错误信息
  105. if (this._errorHandler != null) {
  106. //如果有统一的异常处理,就先调用统一异常处理函数对异常进行处理
  107. this._errorHandler(res)
  108. }
  109. reject(res)
  110. }
  111. }),
  112. fail: (res => {
  113. if (this._errorHandler != null) {
  114. this._errorHandler(res)
  115. }
  116. wx.showToast({
  117. title: '网络异常请稍后',
  118. })
  119. reject(res)
  120. })
  121. })
  122. })
  123. }
  124. }
  125. export default request