HarmonyOS鸿蒙Next中基于Axios实现网络请求示例代码

HarmonyOS鸿蒙Next中基于Axios实现网络请求示例代码

介绍

本示例对Axios部分功能进行封装,通过axios.request()方法实现网络请求功能,用户可更改Config配置文件以访问不同地址。

基于 Axios 实现网络请求源码链接

效果预览

图片名称

  1. package.json5文件中配置axios依赖。

    "dependencies": {
      "@ohos/axios": "^2.2.0"
    }
    
  2. 封装自定义工具类,封装请求方法。

    async request(url: string): Promise<Result> {
      let result: Result = {}
      let res: AxiosResponse = await axios.request({ url: url, method: 'get' })
      result.statue = res ? JSON.stringify(res.status) : '';
      result.data = res ? JSON.stringify(res.data) : '';
      result.statusText = res ? res.statusText : '';
      return result
    }
    
  3. 定义Config接口并实现。

    export const demoConfig1: DemoConfig = {
      baseUrl: getContext().resourceManager.getStringByNameSync('url_develop'), // 基础请求地址
      ......
    } 
    
  4. 调用工具类请求方法获取响应数据。

    this.startTime = new Date().getTime()
    this.axiosUtil.request(this.baseUrl)
      .then((res) => {
        this.status = res.statue
        this.message = res.data
        this.endTime = new Date().getTime()
        hilog.error(0x0000, 'testTag', '%{public}s', JSON.stringify(res));
      })
      .catch((err: BusinessError) => {
        hilog.error(0x0000, 'testTag', 'err code == %{public}s msg == %{public}s', err.code, err.message);
      })
    

更多关于HarmonyOS鸿蒙Next中基于Axios实现网络请求示例代码的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

HarmonyOS Next中使用ArkTS实现网络请求的示例代码:

import axios from '@ohos/axios';
import http from '@ohos/http';

async function fetchData() {
  try {
    const response = await axios.get('https://api.example.com/data');
    console.log('Response data:', response.data);
  } catch (error) {
    console.error('Request failed:', error);
  }
}

// 或者使用原生http模块
let httpRequest = http.createHttp();
httpRequest.request(
  "https://api.example.com/data",
  {
    method: 'GET',
    header: {
      'Content-Type': 'application/json'
    }
  },
  (err, data) => {
    if (!err) {
      console.log('Result:', data.result);
    } else {
      console.error('Error:', err);
    }
  }
);

注意:HarmonyOS Next的axios实现与Web版axios接口兼容,但底层基于OHOS的http模块。

更多关于HarmonyOS鸿蒙Next中基于Axios实现网络请求示例代码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个很好的HarmonyOS Next中使用Axios实现网络请求的示例。我来补充几点关键信息:

  1. 在HarmonyOS Next中使用Axios需要确保在package.json5中正确配置依赖版本,示例中的"@ohos/axios": "^2.2.0"是当前推荐版本。

  2. 示例中的request方法封装了基本的GET请求,实际开发中建议扩展支持POST/PUT/DELETE等方法,并添加headers、timeout等配置参数。

  3. 错误处理部分使用了hilog记录日志,这是HarmonyOS推荐的日志记录方式,开发者可以根据需要调整日志级别。

  4. 性能监控部分通过记录startTime和endTime来测量请求耗时,这在优化网络性能时很有帮助。

  5. 资源管理部分使用了resourceManager来获取基础URL,这种方式便于多环境配置切换。

整体实现符合HarmonyOS开发规范,可以作为网络请求模块的基础模板使用。

回到顶部