vscode 怎么设置代理,让测试的 axios 也能够自动使用该代理?

2021-09-26 09:56:28 +08:00
 yazoox

我们使用了一个第三方的库,这个库是用 axios 访问 dropbox 的 API, 比如 https://api.dropboxapi.com/oauth2/token, 但是 dropbox 被墙了,大家都知道。

现在我在操作系统 windows 10 network setting 里面,设置了代理。然后在 vscode 的 config 里面,也设置了 “http.proxy”: "http://xxx.com:8080" 和 "http.proxyStrictSSL": false

但是,调用该库的时候,还是返回 not authenticated.的。

我用浏览器网页试过了,通过该代理是能够访问 dropbox 的。

谢谢!

p.s. axios 好像是可以直接设置代理的,但我们调用的是第三方的库,这个库里面使用的 axios,我没有办法直接改代码。

4037 次点击
所在节点    Visual Studio Code
17 条回复
cz5424
2021-09-26 10:05:46 +08:00
检查一下代理访问是否需要账号密码
yazoox
2021-09-26 10:14:20 +08:00
@cz5424 忘记说了,不需要密码。代理是公司内部的结点,用的 squid3 搭的,直接 http://xxx.com:8080 就可以了。浏览器就是用的 switchy omega 这么设置的,正常工作。
renmu123
2021-09-26 10:20:18 +08:00
不如魔改一下让三方库支持代理
dcsuibian
2021-09-26 10:27:18 +08:00
有点不太明白这个程序是怎么运行的,如果是通过 node 运行的话,不应该让命令行走代理吗?为什么要让 vscode 走代理?
lin07hui
2021-09-26 10:41:17 +08:00
vscode 插件开发 or 前端开发 ?
pecokie
2021-09-26 10:48:13 +08:00
@renmu123 #3 感觉做一个旁路由透明代理可能会还更方便一点
ai277014717
2021-09-26 10:57:27 +08:00
使用 terminal 打开 vscode,打开之前设置 http_proxy https_proxy all_porxy 应该可以。
AreYou0k
2021-09-26 11:00:58 +08:00
自己写一个走代理连 dropbox 的 API 的接口, 然后用这个第三方库连自己写的接口. (方案有点捞)
cweijan
2021-09-26 11:13:53 +08:00
vscode 的代理是设置的内部的服务请求, 没法到影响 axios, 我能想到的方法是用 proxifier 设置系统代理, 这个软件可以匹配指定域名.
EridanusSora
2021-09-26 11:30:51 +08:00
proxifier 代理 node
archean
2021-09-26 13:38:05 +08:00
netsh winhttp set proxy proxy-server="http://xxx.com:8080" bypass-list="*.internaldomain.com"
archean
2021-09-26 13:41:06 +08:00
@archean 没写完发出去了,这个命令可以让很多命令行程序访问 http/https 协议的时候走代理,可以试试能否满足你的要求。
ruoxie
2021-09-26 14:17:24 +08:00
所以你的应用到底是跑在 vscode 里还是浏览器里?
gitopen
2021-09-26 14:39:06 +08:00
proxifier +1
yazoox
2021-09-27 07:41:05 +08:00
@EridanusSora @gitopen
Proxifier 试用了一下,这个 http 的 proxy server 只能走 http 的流量。我当初搭 squid3 的 server 时,只搭了 http 的,没有 https 的,proxifer 用不了。
@ruoxie 我的应用,可以说是一个 node 应用,我是用 vscode 把它启动起来(debug),这个 node 应用要访问 dropbpx 的 public API.

@archean 这个我试过了,不行。而且,这么设置后,浏览器啥网站都打不开了... (注,我的 bypass-list 没有设置)。这个只能让命令行程序使用?我的程序,本质上是一个 node 的程序。
netsh winhttp set proxy proxy-server="http://xxx.com:8080"
yazoox
2021-09-27 07:43:07 +08:00
@archean 说错了,这么设置后,baidu.com 等没有墙的网站,还是能打开的,但 dropbox 墙外的,还是不行。
gitopen
2021-09-27 11:38:16 +08:00
@yazoox 小伙伴使用姿势有问题,我用了好几年了,macOS 或者 windows 的系统全局代理,都用的好好的。不仅全局代理,还可以分流。。。比 clash pro 的 TUN 模式都好用,都稳定。
https://i.loli.net/2021/09/27/2WUm6p9An1s3cCD.png

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/804272

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX