鸿蒙Next中http.createhttp()忽视ssl证书验证的方法

在鸿蒙Next中使用http.createhttp()时,如何忽略SSL证书验证?项目中需要访问自签名或测试环境的HTTPS接口,但系统默认会校验证书导致连接失败。希望了解是否有类似其他平台的setVerify(false)这样的配置选项,或者需要手动实现证书校验逻辑?官方文档中似乎没有明确说明,求具体实现方法或示例代码。

2 回复

鸿蒙Next中,忽略SSL证书验证?简单!在createHttp()时,设置options里的securityLevel"low",或者用setSSLSecurity()关掉验证。不过友情提醒:这就像把门拆了还贴“欢迎光临”——方便但危险!建议只在测试环境用哦~

更多关于鸿蒙Next中http.createhttp()忽视ssl证书验证的方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,使用@ohos.net.http模块创建HTTP请求时,默认会验证SSL证书以确保安全通信。如果需要忽略SSL证书验证(例如在开发测试环境中使用自签名证书),可以通过以下方法实现:

步骤:

  1. 导入模块:使用http.createHttp()方法创建HTTP请求。
  2. 配置请求参数:在options中设置extraData,并通过sslOptions禁用证书验证。
  3. 发送请求:调用request()方法。

示例代码:

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

// 创建HTTP请求
let httpRequest = http.createHttp();

// 配置请求选项,忽略SSL证书验证
let options = {
  method: http.RequestMethod.GET, // 请求方法,例如GET
  url: 'https://your-insecure-url.com', // 目标URL(自签名或测试环境)
  extraData: {
    sslOptions: {
      // 设置忽略SSL证书验证
      rejectUnauthorized: false // 关键参数:禁用证书验证
    }
  }
};

// 发送请求
httpRequest.request(options)
  .then((response) => {
    console.log('Response code:', response.responseCode);
    console.log('Response data:', response.result);
  })
  .catch((error) => {
    console.error('Request failed:', error);
  });

注意事项:

  • 安全风险:忽略SSL证书验证会降低通信安全性,易受中间人攻击。仅限测试环境使用,生产环境中务必启用证书验证。
  • 参数rejectUnauthorized: false是关键,它告诉系统不验证证书的有效性。
  • 确保网络权限已配置:在module.json5中添加ohos.permission.INTERNET权限。

如果遇到问题,请检查HarmonyOS SDK版本及文档更新。

回到顶部