【鸿蒙学习笔记】使用axios进行HTTP数据请求

官方文档:网络管理开发概述

访问淘宝公开接口(测试数据)

http://rap2api.taobao.org/app/mock/293606/api/chat/list

第1步:module.json5 配置网络授权

"requestPermissions": [{
  // 网络授权
  "name":'ohos.permission.INTERNET'
}]

第2步:下载axios

Alt+F12 → 执行 ohpm install @ohos/axios

在这里插入图片描述
在这里插入图片描述

第3步:源码

//1. 下载axios: Alt+F12 → 执行 ohpm install @ohos/axios
//2. 导入axios
import axios, { AxiosError, AxiosResponse } from '@ohos/axios'

class DataInfo {
  list: Array<DataItem> = new Array()
  // list: Array<DataItem> = []
}

class DataItem {
  originName: string = ''
  messageIconUrl: string = ''
  describe: string = ''
  remarkName: string = ''
  messageText: string = ''
}

// 淘宝公开接口,返回的数据读不懂(测试数据)
let url = 'http://rap2api.taobao.org/app/mock/293606/api/chat/list';

@Entry
@Component
struct Page_axios {
  @State mockDataList: Array<DataItem> = []
  url = 'http://rap2api.taobao.org/app/mock/293606/api/chat/list';

  build() {
    Row() {
      Column() {
        Button('get axiosData').margin(20)
          .onClick(() => {
            this.getAxiosData()
          })
        ForEach(this.mockDataList, (item: DataItem) => {
          Text(item.originName).fontColor(Color.Red)
        })

        Button('使用Axios获取网络数据').margin(20)
          .onClick(() => {
            this.axiosGetHttpData();
          })
        ForEach(this.mockDataList, (item: DataItem) => {
          Text(item.originName).fontColor(Color.Blue)
        })
      }.width('100%')
    }.height('100%')
  }

  getAxiosData() {
    //3. axios发起请求
    axios.get(this.url)
      .then((res: AxiosResponse) => {
        //4. axios获取结果
        // res.data
        AlertDialog.show({ message: JSON.stringify(res.data) })
        this.mockDataList = res.data.list
      })
  }

  axiosGetHttpData() {
    axios.get<DataInfo, AxiosResponse<DataInfo>, null>(url)
      .then((resp: AxiosResponse<DataInfo>) => { // 获取数据成功
        if (resp.status === 200) { // 获取正确网络数据
          AlertDialog.show({ message: JSON.stringify(resp.data.list) })
          this.mockDataList = resp.data.list
        } else {
          AlertDialog.show({ message: '获取失败' })
        }
      })
      .catch((err: AxiosError) => { // 网络异常或者接口异常回调
        AlertDialog.show({ message: '获取失败' })
      })
  }
}

第4步:启动模拟器

在这里插入图片描述

第5步:启动entry

在这里插入图片描述

在这里插入图片描述

第6步:操作

在这里插入图片描述

相关推荐

  1. 鸿蒙harmony--HTTP数据请求的简单使用

    2024-07-12 05:30:01       47 阅读
  2. 鸿蒙HarmonyOS-HTTP网络数据请求

    2024-07-12 05:30:01       58 阅读
  3. vue2使用axios封装请求数据

    2024-07-12 05:30:01       33 阅读
  4. 阐述使用 HttpClient 进行 http 请求

    2024-07-12 05:30:01       127 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 05:30:01       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 05:30:01       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 05:30:01       45 阅读
  4. Python语言-面向对象

    2024-07-12 05:30:01       55 阅读

热门阅读

  1. C# - 异步编程和同步编程总结

    2024-07-12 05:30:01       24 阅读
  2. 微服务中的 “服务发现机制” 简介

    2024-07-12 05:30:01       22 阅读
  3. Vuetify3 + Nuxt3:跳转详情

    2024-07-12 05:30:01       21 阅读
  4. Django ORM中ExpressionWrapper的用途

    2024-07-12 05:30:01       20 阅读
  5. 【算法】反转链表

    2024-07-12 05:30:01       22 阅读
  6. NoSQL之REDIS配置与优化

    2024-07-12 05:30:01       19 阅读
  7. 阿里云API安全2.0全新发布

    2024-07-12 05:30:01       21 阅读
  8. (三)大模型/人工智能/机器学习/深度学习/NLP

    2024-07-12 05:30:01       17 阅读
  9. 数据库常见问题(持续更新)

    2024-07-12 05:30:01       23 阅读