HarmonyOS 鸿蒙Next https协议相关指导文档

HarmonyOS 鸿蒙Next https协议相关指导文档 之前网络请求都是http的,目前想在鸿蒙侧使用https的协议,没有处理过https协议相关的东西,这个有啥指导吗

当前使用的网络库是axios

2 回复

在鸿蒙(HarmonyOS)中使用 Axios 处理 HTTPS 请求,整体流程与 Web 端类似,但需注意鸿蒙系统的网络权限、证书校验、环境兼容性等细节。以下是详细指导:

一、基础 HTTPS 配置

  1. 确保服务器证书合法
  • 使用权威 CA 证书:确保服务器配置了有效的 SSL 证书,鸿蒙系统默认信任主流 CA 机构颁发的证书。
  • 自签名证书处理:若使用自签名证书,需将证书(.crt.pem 文件)内置到应用中,并在请求时手动校验。

二、Axios 的 HTTPS 适配

  1. 使用自签名证书

将证书文件(如 server.crt)放入鸿蒙应用的 resources/rawfile 目录,通过 @ohos.net.http 模块加载:

import http from '@ohos.net.http';

import { BusinessError } from '@ohos.base';

import util from '@ohos.util';

// 创建 HTTP 客户端
let httpRequest = http.createHttp();

// 读取证书文件
let context = this.getContext();
let certData = context.resourceManager.getRawFileContentSync('server.crt');
let base64Cert = util.base64EncodeSync(certData);

// 配置 SSL 选项
let sslOptions: http.HttpSecureOptions = {
  cert: {
    data: base64Cert,
    encoding: http.EncodingType.BASE64,
    type: http.CertType.BLOB
  },
  // 其他参数:密码、协议版本等
};

let requestOptions: http.RequestOptions = {
  method: http.RequestMethod.GET,
  url: '', // 请求地址
  extraData: { key: 'value' },
  expectDataType: http.HttpDataType.STRING,
  secureOptions: sslOptions // 注入 SSL 配置
};

httpRequest.request(requestOptions)
  .then((response: http.HttpResponse) => {
    console.log('Response:', response.result);
  })
  .catch((err: BusinessError) => {
    console.error('Error:', err.message);
  });

三、鸿蒙网络权限配置

module.json5 中声明网络权限:

{
  "module": {
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
  }
}

总结

  • 生产环境务必使用有效 CA 证书,避免跳过证书校验。
  • 自签名证书需内置到应用,并通过 secureOptions 配置。
  • 关注鸿蒙网络模块 @ohos.net.http 的 API 限制,必要时结合 Axios 的适配层。

更多关于HarmonyOS 鸿蒙Next https协议相关指导文档的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS鸿蒙Next的HTTPS协议相关指导文档可以在华为开发者官网的文档中心找到。文档详细介绍了如何在鸿蒙系统中配置和使用HTTPS协议进行网络通信。包括证书的加载与验证、HTTPS请求的发送与接收、以及常见问题的排查方法。开发者可以通过阅读这些文档,掌握鸿蒙系统下HTTPS协议的具体实现方式。

回到顶部