【鸿蒙学习笔记】网络服务・axios数据请求

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

访问淘宝公开接口(测试数据):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步:操作

在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
axios是一个用于浏览器和Node.js的HTTP客户端库,用于发起网络数据请求。它基于Promise,提供了简单易用的API,可以用于发送GET、POST等类型的请求。 在Vue中使用axios进行数据请求的方法如下: 1. 首先,需要在项目中安装axios。可以使用npm或者yarn进行安装: ```shell npm install axios ``` 或者 ```shell yarn add axios ``` 2. 在需要使用axios的组件中,引入axios库: ```javascript import axios from 'axios'; ``` 3. 使用axios发送GET请求的示例代码如下: ```javascript axios.get('/api/data') .then(function (response) { console.log(response.data); }) .catch(function (error) { console.log(error); }); ``` 上述代码中,`/api/data`是请求的URL,通过调用`axios.get`方法发送GET请求请求成功后,会执行`then`方法中的回调函数,可以在回调函数中处理返回的数据。如果请求失败,会执行`catch`方法中的回调函数,可以在回调函数中处理错误信息。 4. 使用axios发送POST请求的示例代码如下: ```javascript axios.post('/api/data', { name: 'John', age: 30 }) .then(function (response) { console.log(response.data); }) .catch(function (error) { console.log(error); }); ``` 上述代码中,`/api/data`是请求的URL,通过调用`axios.post`方法发送POST请求。第二个参数是请求数据,可以是一个对象或者FormData对象。请求成功后,会执行`then`方法中的回调函数,可以在回调函数中处理返回的数据。如果请求失败,会执行`catch`方法中的回调函数,可以在回调函数中处理错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值