当前位置: 首页 > article >正文

实战04-http请求

http.ts
import axios, { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from '@ohos/axios';

const request = axios.create({
  baseURL: 'http://192.168.1.7:8001/demo/lx', // 通过 ipconfig 查询当前电脑的 ip,使用自己电脑的 ip 地址
  timeout: 20000,
})

request.interceptors.request.use(
  (config: InternalAxiosRequestConfig) => {
    // 未来需要添加 token
    // config.headers.token = token;
    return config;
  }
)

request.interceptors.response.use(
  (response: AxiosResponse) => {
    if (response.data.code === 200) {
      return response.data.data;
    } else {
      return Promise.reject(response.data.message);
    }
  },
  (error: AxiosError) => {
    return Promise.reject(error.message);
  }
)

export default class Http {
  get<T>(url: string, params?: Object) {
    return request.get<null, T>(url, {
      params
    })
  }

  post<T>(url: string, data?: Object) {
    return request.post<null, T>(url, data)
  }

  put<T>(url: string, data?: Object) {
    return request.put<null, T>(url, data)
  }

  delete<T>(url: string, params?: Object) {
    return request.delete<null, T>(url, {
      params
    })
  }
};
home.ts
import Http from '../utils/http';
import { HomeData } from './models/HomeData';

const http = new Http();

//获取首页数据
export const getHomeDataApi = () => {
  return http.get<HomeData>('home/info')
}

 

HomeDate.ts
export interface HomeData {
  "bannerList": IBannerList
  "navList": INavList
  "titleList": ITitleList
  "planList": IPlanList
  "adPicTure": string
}

export interface IBannerItem {
  "id": number,
  "name": string,
  "imageURL": string
}

export type IBannerList = IBannerItem[]

export interface INavItem {
  "id": number,
  "title": string,
  "imageURL": string
}

export type INavList = INavItem[]

export interface ITitleItem {
  "id": number
  "imageURL": string
  "title": string
  "sub_title": string
}

export type ITitleList = ITitleItem[]

export interface IPlanItem {
  "id": number
  "imageURL": string
}

export type IPlanList = IPlanItem[]

 

根据自己的情况去改动改动。。我是写的也不规范。我也是个新手 


http://www.kler.cn/news/309849.html

相关文章:

  • flutter集成百度地图定位 ‘BMKLocationManager.h‘ file not found报错
  • 消防指挥中心控制台:守护安全的关键枢纽
  • TCP/IP协议概述
  • 【乐吾乐大屏可视化组态编辑器】使用手册
  • Android 用线程池实现一个简单的任务队列(Kotlin)
  • 红队打点的思路与信息收集
  • android.view.InflateException: Binary XML file line #7: Error inflating class
  • xilinx vivado PULLMODE 设置思路
  • linux 使用SSH密钥配置免密登录
  • 我要走遍三山五岳之---嵩山
  • 问题:WINCC 7.5 结构变量只能是内部变量吗?
  • linux 获取指定端口的PID netsat awk
  • 构建未来教育:智慧校园的功能与特色
  • MacOS安装MAT教程
  • 经典sql题(一)求连续登录不少于三天用户
  • Android 源码多个Launcher设置默认Launcher
  • 栈和队列OJ题C语言版
  • GDPU Vue前端框架开发 计数器
  • 机器学习实战—天猫用户重复购买预测
  • 论文不会写?分享6款AI论文写作免费一键生成网站!
  • 老友记台词 第二季 第一集 Friends 201(全英版)
  • Java 21的Enhanced Deprecation的笔记
  • 【小鹏汽车用户平台-注册安全分析报告-无验证方式导致安全隐患】
  • mac电脑命令行获取电量
  • PHP仓库物资出入库管理系统小程序源码
  • OTA升级
  • Python urllib
  • 智能化大数据平台引领企业迈向精准决策时代
  • java中的集合之List
  • 828华为云征文|华为Flexus云服务器搭建OnlyOffice私有化在线办公套件