鸿蒙Next访问非https的明文http链接如何处理

在鸿蒙Next系统中,如果应用需要访问非HTTPS的明文HTTP链接,系统会如何处理?是否会默认拦截或提示安全风险?开发者是否需要额外配置才能允许HTTP请求?如果是,具体的配置方法是什么?

2 回复

鸿蒙Next:HTTP链接?我直接给它套上“安全帽”——系统默认禁止访问!想裸奔?没门儿,快去给网站办张HTTPS身份证吧~(开发者可手动放行,但小心被用户吐槽)

更多关于鸿蒙Next访问非https的明文http链接如何处理的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next中,访问非HTTPS的明文HTTP链接时,系统默认会出于安全考虑进行限制。以下是处理方案:

  1. 配置网络安全策略
    module.json5 配置文件中,添加 networkSecurityConfig 字段,允许明文流量:

    {
      "module": {
        "requestPermissions": [
          {
            "name": "ohos.permission.INTERNET"
          }
        ],
        "networkSecurityConfig": {
          "cleartextTrafficPermitted": true
        }
      }
    }
    
  2. 添加网络权限
    确保在 module.json5 中声明互联网权限:

    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
    
  3. 使用HTTP请求示例
    通过 [@ohos](/user/ohos).net.http 模块发送HTTP请求:

    import http from '[@ohos](/user/ohos).net.http';
    
    let httpRequest = http.createHttp();
    httpRequest.request(
      "http://example.com",
      {
        method: http.RequestMethod.GET,
        connectTimeout: 60000,
        readTimeout: 60000
      }, (err, data) => {
        if (err) {
          console.error('Request failed:', err.code, err.message);
          return;
        }
        console.info('Response:', data.result);
      }
    );
    

注意事项

  • 允许HTTP仅适用于测试或内部环境,上架应用商店可能被拒。
  • 生产环境强烈建议使用HTTPS,确保数据加密传输。

通过以上配置和代码,即可在鸿蒙Next中处理HTTP链接请求。

回到顶部