VS Code扩展开发中axios单请求忽略无效证书配置不生效问题
问题原因
- VS Code基于Electron运行,Electron默认会接管Node.js原生的网络请求流程,你为单个请求传入的自定义
https.Agent配置会被Electron的网络栈忽略,只有全局修改https.globalAgent的配置才会生效。 - 你项目依赖中额外安装的
https包是npm上已废弃的空占位包,并不是Node.js内置的https模块,引入后会干扰原生模块的调用,导致你自定义的Agent配置不生效。
解决步骤
- 首先卸载无效的
https依赖,执行命令:npm uninstall https
Node.js内置了https模块,不需要额外安装第三方包。 - 在axios请求配置中强制指定使用Node.js原生HTTP适配器,避免被Electron的网络栈接管,修改后的请求代码如下:
await axios.get( 'https://expired.badssl.com/', { // 强制使用Node.js原生http适配器,让自定义Agent生效 // @ts-ignore 若typescript提示类型错误可加该行忽略 adapter: require('axios/lib/adapters/http'), httpsAgent: new https.Agent({ rejectUnauthorized: false }) } );
修改完成后,单个请求的rejectUnauthorized配置就会独立生效,不会影响全局的证书校验逻辑。
内容的提问来源于stack exchange,提问作者bgmn
相关产品推荐
相关产品推荐

