当前位置: 首页 > 后端技术 > Node.js

axios访问国外接口

时间:2023-04-03 14:48:08 Node.js

最近想做一个玩具demo。访问的api需要梯子才能访问。我在本地安装了clashX,可以使用浏览器正常访问界面,但是运行代码时访问会超时。首先想到的是命令行设置代理exporthttps_proxy=http://127.0.0.1:7890http_proxy=http://127.0.0.1:7890all_proxy=socks5://127.0.0.1:7890设置后,通过命令行curl命令可以正常访问API,但是运行代码时会报错ClientnetworksocketdisconnectedbeforesecureTLSconnectionwasestablishedError:ClientnetworksocketdisconnectedbeforesecureTLSconnectionwasestablished一搜,发现了一篇Node.jsAxiosbehindcorporateproxies,通过隧道创建HTTPS-over-HTTP隧道,可以顺利访问!!具体实现是://代理设置constagent=tunnel.httpsOverHttp({proxy:{host:'127.0.0.1',port:7890,}});axios.request({url:'https://the_api_you_want_access',method:'get',httpsAgent:agent,proxy:false,//设置axios不自动检测命令行代理设置});