鸿蒙Next开发中非https请求是否被禁止?

在鸿蒙Next开发中,是否默认禁止非HTTPS的网络请求?如果需要使用HTTP协议进行开发测试,应该如何配置才能允许这类请求?官方是否有相关的安全策略说明或例外情况的处理方案?

2 回复

鸿蒙Next开发中,非https请求目前未被强制禁止,但会被系统温馨提醒:“亲,为了您的数据安全,建议升级到https哦~” 毕竟在互联网裸奔容易被偷看聊天记录呢!😄

更多关于鸿蒙Next开发中非https请求是否被禁止?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next开发中,非HTTPS请求默认情况下并未被完全禁止,但存在一些限制和推荐做法:

  1. 默认配置
    鸿蒙Next应用默认允许HTTP请求,但需在module.json5文件中声明网络权限:

    {
      "module": {
        "requestPermissions": [
          {
            "name": "ohos.permission.INTERNET"
          }
        ]
      }
    }
    
  2. 安全策略限制
    若应用目标API级别较高(如≥9),系统可能默认阻止明文HTTP流量。此时需在module.json5中显式允许:

    {
      "module": {
        "metadata": [
          {
            "name": "customize_data",
            "value": "{\"cleartextTraffic\":true}"
          }
        ]
      }
    }
    
  3. 应用商店审核
    华为应用市场可能对非HTTPS请求的应用进行更严格审核,尤其是涉及敏感数据传输时。

  4. 开发建议

    • 生产环境强烈建议使用HTTPS以确保数据安全
    • 测试阶段可临时启用HTTP,但上架前应完成HTTPS迁移

示例网络请求代码(HTTP):

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

let httpRequest = http.createHttp();
httpRequest.request(
  "http://example.com/api",
  {
    method: http.RequestMethod.GET,
    connectTimeout: 60000,
    readTimeout: 60000,
  }, (err, data) => {
    if (!err) {
      console.info('Response:' + data.result);
    } else {
      console.error('Error:' + JSON.stringify(err));
    }
  }
);

总结:非HTTPS请求在开发阶段可用,但需注意权限配置和安全策略。为符合最佳实践,建议尽早适配HTTPS。

回到顶部