axiosUtils.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /**
  2. * 封装axios的类
  3. * nh 2021.12.23
  4. */
  5. import axios from 'axios'
  6. var CancelToken = axios.CancelToken
  7. var cancel
  8. // 创建axios实例
  9. const axiosservice = axios.create({
  10. timeout: 3000000, // 请求超时时间
  11. cancelToken: new CancelToken(function executor(c) {
  12. // executor 函数接收一个 cancel 函数作为参数
  13. cancel = c
  14. })
  15. })
  16. axiosservice.interceptors.request.use(
  17. config => {
  18. return config
  19. },
  20. error => {
  21. return Promise.reject(error)
  22. }
  23. )
  24. axiosservice.interceptors.response.use(
  25. function (res) {
  26. //在这里对返回的数据进行处理
  27. let resp = res.data
  28. return res
  29. },
  30. function (err) {
  31. console.log('axios interceptors err = ', err)
  32. return Promise.reject(err)
  33. }
  34. )
  35. export class axiosUtils {
  36. /**
  37. * get请求
  38. * @param url
  39. * @param data
  40. * @returns
  41. */
  42. protected async getRequest(url: string, data: any) {
  43. try {
  44. let response = await this.customRequest(url, {}, data, 'get');
  45. return response.data;
  46. } catch (err) {
  47. throw err
  48. }
  49. };
  50. /**
  51. * post请求
  52. * @param url
  53. * @param data
  54. * @returns
  55. */
  56. protected async postRequest(url: string, data: any) {
  57. try {
  58. let response = await this.customRequest(url, {}, data, 'post');
  59. return response.data;
  60. } catch (err) {
  61. throw err
  62. }
  63. };
  64. /**
  65. * 自定义请求
  66. * @param url
  67. * @param headers
  68. * @param data
  69. * @param method get | post 默认post
  70. * @returns
  71. */
  72. protected async customRequest(url: string, headers: any, data: any, method: string = 'post') {
  73. try {
  74. let response = await axiosservice({
  75. url,
  76. headers: headers || {},
  77. data,
  78. method: method == 'post' ? 'post' : 'get'
  79. })
  80. return response.data
  81. } catch (err) {
  82. throw err
  83. }
  84. }
  85. }