鸿蒙Next中axios如何去除https的ssl校验

在鸿蒙Next开发中,使用axios发送HTTPS请求时,如何去除SSL证书校验?系统默认会校验服务器证书,但在测试环境下需要忽略证书验证,应该怎样配置axios的请求参数?求具体代码示例或解决方案。

2 回复

在鸿蒙Next中去除HTTPS的SSL校验,可以通过以下步骤实现:

  1. 创建自定义的SSL配置对象:
import axios from 'axios';
import { ssl } from '@ohos.net.http';

// 创建SSL配置
let sslOptions = {
  protocols: [ssl.Protocol.TLSV12],
  useRemoteCipherPrefer: true,
  // 关闭证书验证
  authType: ssl.AuthType.NONE
};
  1. 在axios请求配置中应用SSL配置:
axios.get('https://example.com/api', {
  httpAgent: {
    sslOptions: sslOptions
  }
}).then(response => {
  console.log(response.data);
});

或者创建axios实例:

const instance = axios.create({
  httpAgent: {
    sslOptions: sslOptions
  }
});

注意:这种方法仅适用于开发和测试环境,生产环境强烈建议开启SSL验证以确保通信安全。

更多关于鸿蒙Next中axios如何去除https的ssl校验的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在鸿蒙Next(HarmonyOS NEXT)中,使用axios进行网络请求时,如果需要去除HTTPS的SSL证书校验(例如在开发测试环境中忽略证书验证),可以通过自定义HTTP客户端配置来实现。以下是具体步骤和示例代码:

步骤说明:

  1. 创建自定义的HTTP客户端:使用鸿蒙的http模块创建客户端实例。
  2. 配置SSL参数:在客户端配置中设置sslOptions,将securityMode设置为不验证证书的模式。
  3. 将自定义客户端传递给axios:在axios请求中使用该客户端。

示例代码:

import axios from '@ohos/axios';
import http from '@ohos/http';

// 创建自定义HTTP客户端,禁用SSL校验
const customHttpClient = http.createHttp();
const sslOptions = {
  securityMode: http.SecurityMode.SECURITY_MODE_NONE // 禁用SSL证书验证
};
customHttpClient.setSSL(sslOptions);

// 使用自定义客户端发起axios请求
axios.get('https://example.com/api/data', {
  httpClient: customHttpClient // 传递自定义客户端
})
  .then(response => {
    console.log('Response data:', response.data);
  })
  .catch(error => {
    console.error('Request failed:', error);
  });

注意事项:

  • 仅用于测试环境:禁用SSL校验会降低通信安全性,仅建议在开发或测试阶段使用,生产环境中必须启用完整的SSL验证。
  • 鸿蒙Next的API可能随版本更新而变化,请参考官方文档(HarmonyOS开发者文档)获取最新信息。

通过以上配置,即可在鸿蒙Next中实现axios忽略HTTPS的SSL校验。

回到顶部