前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >axios发起网络请求

axios发起网络请求

作者头像
徐建国
发布2024-06-19 20:27:52
910
发布2024-06-19 20:27:52
举报
文章被收录于专栏:个人路线个人路线

axios发起网络请求

昨天我们用的是httpclient发起网络请求,今天我们使用axios

介绍

Axios[1] ,是一个基于 promise 的网络请求库,可以运行 node.js 和浏览器中。

  • http 请求
  • Promise API
  • request 和 response 拦截器
  • 转换 request 和 response 的 data 数据
  • 自动转换 JSON data 数据

下载安装

代码语言:javascript
复制
ohpm install @ohos/axios

需要权限

代码语言:javascript
复制
ohos.permission.INTERNET

发起一个 GET 请求

axios支持泛型参数,由于ArkTS不再支持any类型,需指定参数的具体类型。 如:axios.get<T = any, R = AxiosResponse, D = any>(url)

  • T: 是响应数据类型。当发送一个 POST 请求时,客户端可能会收到一个 JSON 对象。T 就是这个 JSON 对象的类型。默认情况下,T 是 any,这意味着可以接收任何类型的数据。
  • R: 是响应体的类型。当服务器返回一个响应时,响应体通常是一个 JSON 对象。R 就是这个 JSON 对象的类型。默认情况下,R 是 AxiosResponse,这意味着响应体是一个 AxiosResponse 对象,它的 data 属性是 T 类型的
  • D: 是请求参数的类型。当发送一个 GET 请求时,可能会在 URL 中添加一些查询参数。D 就是这些查询参数的类型。参数为空情况下,D 是 null类型。

完整源码

代码语言:javascript
复制
import axios, { AxiosError, AxiosResponse } from '@ohos/axios';

@Entry
@Component
struct SecondPage {
  @State message: string = 'Hello World';

  aboutToAppear(): void {

    this.getDate()
  }

  getDate() {

    axios<string, AxiosResponse<string>, null>({
      method: "get",
      url: '你的url'
    }).then((res: AxiosResponse) => {
      this.message=JSON.stringify(res.data)
      console.info('result:' + JSON.stringify(res.data));
    }).catch((error: AxiosError) => {
      console.error(error.message);
    })
  }

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}

效果

参考资料

[1]

Axios: https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2Faxios%2Faxios

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • axios发起网络请求
  • 介绍
  • 下载安装
  • 需要权限
  • 发起一个 GET 请求
  • 完整源码
  • 效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档