Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

网络连接 - 第三方库 axios #54

Open
cnwutianhao opened this issue Jul 28, 2024 · 0 comments
Open

网络连接 - 第三方库 axios #54

cnwutianhao opened this issue Jul 28, 2024 · 0 comments

Comments

@cnwutianhao
Copy link
Owner

axios 是前端开发中用来发送 ajax 请求的最流行的第三方库,ajax 请求本质也属于 http 请求,因此在鸿蒙开发中也依然可以使用 axios。

一、下载和配置 ohpm

ohpm 的全称是 OpenHarmony Package Manager,是一个 npm 包管理工具,可以方便的在鸿蒙开发中安装第三方库。

  1. 下载 ohpm 工具包

    如果已经安装了 DevEco Studio NEXT 版本,是自带 ohpm 的。如果没找到也可以在官网下载 Command Line Tools for HarmonyOS NEXT Developer,这个里面就包含了 ohpm。

    地址:

    https://developer.huawei.com/consumer/cn/download/
    
  2. 环境变量配置

    各个系统配置环境变量有所不同,可以参考鸿蒙开发者网站提供的文档进行配置。

    地址:

    https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-commandline-get-0000001954334245-V5
    
  3. 验证 ohpm 是否配置成功

    ohpm -v
    1.2.0

二、下载和安装 axios

OpenHarmony 三方库中心仓 axios 官网地址:
https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Faxios

  1. 下载 axios

    ohpm install @ohos/axios
  2. 开放网络权限

    {
      "module": {
        ...
        "requestPermissions": [
          {
            "name": "ohos.permission.INTERNET"
          }
        ]
      }
    }
  3. 查看 axios 是否已经引用到工程

    打开 oh-package.json5 文件,查看是否包含 axios:

    {
      "modelVersion": "5.0.0",
      "description": "Please describe the basic information.",
      "dependencies": {
        "@ohos/axios": "^2.2.2"
      },
      "devDependencies": {
        "@ohos/hypium": "1.0.18",
        "@ohos/hamock": "1.0.0"
      }
    }

    在项目根目录能看到 oh_modules 文件夹,里面包含了 axios 的源码。

三、使用 axios

  1. 导入 axios

    import axios from '@ohos/axios'
  2. 发送请求并处理响应

    axios.get(
      'url',
      {
        params: { 'param1': 'value1' }
      }
    )
      .then((response: AxiosResponse) => {
        if (response.status !== 200) {
          console.log('查询失败')
        }
        console.log('查询成功', JSON.stringify(response.data))
      })
      .catch((error: AxiosError) => {
        console.log('查询失败', JSON.stringify(error))
      })

    AxiosResponse 的结构如下:

    名称 类型 描述
    status number 响应状态码
    headers Object 响应头
    data any 服务端返回的响应体
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant