华为鸿蒙系统(HarmonyOS)调用天聚数行 API 教程

如何在在 HarmonyOS 应用中,通过 HTTP 请求调用 天聚数行API,并展示返回的语录内容。以下以调用"打工人语录"接口为例,可以参考使用。

一、开始准备工作

1. 注册账号并获取 API Key

首先,访问天聚数行官网注册账号并登录,返回接口市场搜索并申请「打工人语录」接口。 进入【控制台】 → 【数据管理】 → 获取你的 APIKEY(后续代码中需替换)。

2.创建 HarmonyOS 项目

使用 DevEco Studio 创建一个新的 Stage 模型 的 ArkTS 项目(推荐使用最新稳定版),确保项目支持网络请求权限。

3. 添加网络权限

在 module.json5 文件中添加网络权限:

复制代码
{
  "module": {
    // ...
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}
二、编写网络请求代码(ArkTS)
  1. 导入必要模块

在页面逻辑文件(如 MainPage.ets)顶部导入 @ohos.net.http:

复制代码
import http from '@ohos.net.http';
  1. 定义状态变量用于显示语录
复制代码
@State message: string = '点击获取打工人语录...';
  1. 编写调用 API 的函数
复制代码
private async fetchWorkQuote(): Promise<void> {
  const apiKey = '你的APIKEY'; // ←←← 替换为你自己的 API Key
  const url = `https://apis.tianapi.com/dgryl/index?key=${apiKey}`;

  let httpRequest = http.createHttp();
  try {
    const response = await httpRequest.request(url, {
      method: http.RequestMethod.GET,
      header: {
        'Content-Type': 'application/json'
      }
    });

    if (response.responseCode === 200) {
      let result = JSON.parse(response.result as string);
      if (result.code === 200 && result.result?.content) {
        this.message = result.result.content;
      } else {
        this.message = '获取失败:' + (result.msg || '未知错误');
      }
    } else {
      this.message = `HTTP 错误:${response.responseCode}`;
    }
  } catch (error) {
    console.error('网络请求异常:', error);
    this.message = '网络请求失败,请检查网络或 API Key';
  } finally {
    httpRequest.destroy(); // 释放资源
  }
}
  1. 在 UI 中绑定按钮和文本
复制代码
Column() {
  Text(this.message)
    .fontSize(20)
    .textAlign(TextAlign.Center)
    .padding(20)
    .width('90%')

  Button('获取打工人语录')
    .onClick(() => {
      this.fetchWorkQuote();
    })
    .margin(20)
}
.width('100%')
.height('100%')
.justifyContent(FlexAlign.Center)
三、完整示例代码(MainPage.ets)
复制代码
// MainPage.ets
import http from '@ohos.net.http';

@Entry
@Component
struct MainPage {
  @State message: string = '点击获取打工人语录...';

  private async fetchWorkQuote(): Promise<void> {
    const apiKey = '你的APIKEY'; // ←←← 务必替换!
    const url = `https://apis.tianapi.com/dgryl/index?key=${apiKey}`;

    let httpRequest = http.createHttp();
    try {
      const response = await httpRequest.request(url, {
        method: http.RequestMethod.GET,
        header: { 'Content-Type': 'application/json' }
      });

      if (response.responseCode === 200) {
        let result = JSON.parse(response.result as string);
        if (result.code === 200 && result.result?.content) {
          this.message = result.result.content;
        } else {
          this.message = 'API 返回错误:' + (result.msg || '无内容');
        }
      } else {
        this.message = `HTTP ${response.responseCode}`;
      }
    } catch (err) {
      console.error('请求失败:', err);
      this.message = '请求失败,请检查网络或 API Key';
    } finally {
      httpRequest.destroy();
    }
  }

  build() {
    Column() {
      Text(this.message)
        .fontSize(18)
        .textAlign(TextAlign.Center)
        .padding(20)
        .width('90%')
        .backgroundColor('#f0f0f0')
        .borderRadius(10)

      Button('获取打工人语录')
        .onClick(() => {
          this.fetchWorkQuote();
        })
        .width(200)
        .height(50)
        .margin(30)
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}
四、注意事项

API Key 安全:

不要将 APIKEY 硬编码在前端代码中(仅用于演示)

正式项目建议通过后端代理调用,避免密钥泄露

HTTPS 要求:

HarmonyOS 默认只允许 HTTPS 请求,天聚数行 API 支持 HTTPS,无需额外配置

调用频率限制:

普通会员每日限 100 次,注意不要超限(返回 code=150 表示配额不足)

错误处理:

建议根据返回的 code 字段做更细致的错误提示(参考文档中的错误码表)

五、建议和总结

可以将 API 调用封装为独立服务类,添加加载状态(Loading),实现支持自动刷新或定时轮询,并结合本地缓存避免重复请求。完成以上步骤后,你的 HarmonyOS 应用即可成功调用天聚数行「打工人语录」API,并展示返回的幽默语录文本。

相关推荐
2601_949593654 小时前
基础入门 React Native 鸿蒙跨平台开发:模拟智能音响
react native·react.js·harmonyos
xiaoqi9224 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233225 小时前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos
烬头88216 小时前
React Native鸿蒙跨平台实现二维码联系人APP(QRCodeContactApp)
javascript·react native·react.js·ecmascript·harmonyos
JAVA+C语言7 小时前
如何优化 Java 多主机通信的性能?
java·开发语言·php
青岑CTF8 小时前
攻防世界-Ics-05-胎教版wp
开发语言·安全·web安全·网络安全·php
xiaoqi9229 小时前
React Native鸿蒙跨平台如何实现分类页面组件通过searchQuery状态变量管理搜索输入,实现了分类的实时过滤功能
javascript·react native·react.js·ecmascript·harmonyos
听麟9 小时前
HarmonyOS 6.0+ 智慧出行导航APP开发实战:离线地图与多设备位置协同落地
华为·wpf·harmonyos
qq_177767379 小时前
React Native鸿蒙跨平台实现应用介绍页,实现了应用信息卡片展示、特色功能网格布局、权限/联系信息陈列、评分展示、模态框详情交互等通用场景
javascript·react native·react.js·ecmascript·交互·harmonyos
jin12332210 小时前
基于React Native鸿蒙跨平台地址管理是许多电商、外卖、物流等应用的重要功能模块,实现了地址的添加、编辑、删除和设置默认等功能
javascript·react native·react.js·ecmascript·harmonyos