关于axios:axios访问国外接口

最近想做一个玩具demo,要拜访的api须要应用梯子才能够拜访,我本地装置了clashX,能够应用浏览器失常拜访该接口,然而运行代码时会拜访超时。

首先想到的是,给命令行设置代理
export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890
设置后,通过命令行curl命令能够失常拜访api,然而运行代码会报错
Client network socket disconnected before secure TLS connection was established Error: Client network socket disconnected before secure TLS connection was established

一通搜寻后,找到一篇文章Node.js Axios behind corporate proxies,是通过应用tunnel创立一个HTTPS-over-HTTP tunnel,就能够顺利拜访了!!

具体实现为:

// 代理设置
const agent = 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不要自动检测命令行代理设置
});

评论

《“关于axios:axios访问国外接口”》 有 1 条评论

  1. 龙右 的头像
    龙右

    多谢,一下午了,一直不能解决这个问题,还好拜读了您的文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理