#鸿蒙通关秘籍#如何封装axios请求并进行二次封装

HarmonyOS
2024-12-02 14:05:09
1.2w浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
墨s流年JSON

可以通过两层封装来组织和使用axios请求,以便在项目中更好地维护和扩展:

  1. 基础封装Request
import axios from '@ohos/axios';

const service = axios.create({
  baseURL: 'your_api_prefix',
  timeout: 50000,
  headers: { 'Content-Type': 'application/json;charset=utf-8' }
});

export default service;
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  1. 在此基础上进行二次封装,添加loading和错误提示:
import { AxiosResponse } from '@ohos/axios';
import { JhProgressHUD } from '../components/JhProgressHUD';
import Request from './Request';

export class HttpUtils {
  public static get(url, params, loadingText = "加载中...") {
    return HttpUtils.request('get', url, params, loadingText);
  }

  public static post(url, params, loadingText = "加载中...") {
    return HttpUtils.request('post', url, params, loadingText);
  }

  public static request(method, url, params, loadingText) {
    return new Promise((resolve, reject) => {
      JhProgressHUD.showLoadingText(loadingText);

      Request({ method, url, params })
        .then((res: AxiosResponse) => {
          JhProgressHUD.hide();
          resolve(res.data);
        })
        .catch((err) => {
          JhProgressHUD.showText(err.message || '系统错误');
          reject(err);
        });
    });
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
分享
微博
QQ
微信
回复
2024-12-02 15:49:51


相关问题
HarmonyOS aioxs二次封装
688浏览 • 1回复 待解决
HarmonyOS getStringByName方法二次封装
691浏览 • 1回复 待解决
HarmonyOS 权限二次申请
515浏览 • 1回复 待解决
class二次刷新渲染数组
1247浏览 • 1回复 待解决
HarmonyOS cocos引擎能否二次启动
959浏览 • 1回复 待解决
实现二次侧滑退出应用
2416浏览 • 1回复 待解决
HarmonyOS http请求封装
578浏览 • 1回复 待解决
HarmonyOS http请求封装
620浏览 • 1回复 待解决