uniapp unirequest 网络请求封装

╰半橙微兮° 2021-09-17 22:36 594阅读 0赞
  1. import urlConfig from './config.js'
  2. const request = {}
  3. const headers = {}
  4. const PORT1 = '/baseinfo'
  5. request.globalRequest = (url, method, data, power) => {
  6. /* 权限判断 因为有的接口请求头可能需要添加的参数不一样,所以这里做了区分
  7. == 不通过access_token校验的接口
  8. == 文件下载接口列表
  9. == 验证码登录 */
  10. switch (power) {
  11. case 1:
  12. // headers['X-Token'] = ''
  13. break;
  14. case 2:
  15. // headers['X-Token'] = ''
  16. break;
  17. case 3:
  18. responseType = 'blob'
  19. break;
  20. default:
  21. headers['X-Token'] = uni.getStorageSync('token');
  22. break;
  23. }
  24. return uni.request({
  25. url: urlConfig + url,
  26. method,
  27. data: data,
  28. dataType: 'json',
  29. header: headers
  30. }).then(res => {
  31. if (res[1].statusCode == 200 && res[1].data.code == 0) {
  32. return res[1];
  33. } else if (res[1].statusCode == 406 && res[1].data.code == 0) {
  34. //@todo
  35. //未登录
  36. return res[1];
  37. } else {
  38. console.error(res[1].data);
  39. return res[1];
  40. }
  41. }).catch(parmas => {
  42. switch (parmas.code) {
  43. case 401:
  44. uni.clearStorageSync()
  45. break
  46. default:
  47. break
  48. }
  49. })
  50. }
  51. request.globalUploadImg = (url, name, fileType, data, uploadSuccess, uploadMethod) => {
  52. return uni.chooseImage({
  53. success: (chooseImageRes) => {
  54. const token = uni.getStorageSync('token');
  55. const tempFilePaths = chooseImageRes.tempFilePaths;
  56. const uploadTask = uni.uploadFile({
  57. url: urlConfig + url, //仅为示例,非真实的接口地址
  58. filePath: tempFilePaths[0],
  59. name: name,
  60. formData: data,
  61. fileType: fileType,
  62. header: {
  63. 'X-Token': token
  64. },
  65. success: (uploadFileRes) => {
  66. // console.log(uploadFileRes.data);
  67. if (uploadSuccess && (typeof uploadSuccess === "function")) {
  68. uploadSuccess(uploadFileRes)
  69. }
  70. }
  71. });
  72. if (uploadMethod && (typeof uploadMethod === "function")) {
  73. uploadMethod(uploadTask);
  74. }
  75. }
  76. });
  77. }
  78. request.globalUploadFile = (url, filePath, name, fileType, data, uploadMethod, uploadSuccess) => {
  79. const token = uni.getStorageSync('token');
  80. return uni.uploadFile({
  81. url: urlConfig + url, //仅为示例,非真实的接口地址
  82. filePath: filePath,
  83. name: name,
  84. formData: data,
  85. fileType: fileType,
  86. header: {
  87. 'X-Token': token
  88. },
  89. success: (uploadFileRes) => {
  90. let jsondata = JSON.parse(uploadFileRes.data)
  91. if(jsondata.code==0){
  92. uploadSuccess(jsondata);
  93. }else{
  94. uni.showToast({
  95. title: '网络异常,请稍后重试',
  96. duration: 2000
  97. });
  98. }
  99. }
  100. });
  101. }
  102. export default request
  103. let url_config = ""
  104. if (process.env.NODE_ENV === 'development') {
  105. // 开发环境
  106. url_config = ''
  107. // url_config = ''
  108. } else {
  109. // 生产环境
  110. // url_config = ''
  111. }
  112. export default url_config
  113. import request from '@/common/request.js'
  114. import {
  115. formatGetUri
  116. } from '@/common/util.js'
  117. const api = {}
  118. //微信和成长值组合支付
  119. api.amountAndWXPay = params => request.globalRequest('/index/Pay/amountAndWXPay','Post',params);
  120. export default api

三份代码文件名依次为:request.js config.js api/index.js

使用示例

  1. aDdetail: function() {
  2. const _self = this;
  3. _self.$api.aDdetail({请求参数})
  4. .then(res => {
  5. 返回结果
  6. }).catch(res => {
  7. })
  8. },

发表评论

表情:
评论列表 (有 0 条评论,594人围观)

还没有评论,来说两句吧...

相关阅读