V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yazoox
V2EX  ›  Visual Studio Code

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

  •  1
     
  •   yazoox · 2021-09-26 09:56:28 +08:00 · 3964 次点击
    这是一个创建于 915 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们使用了一个第三方的库,这个库是用 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,我没有办法直接改代码。

    17 条回复    2021-09-27 11:38:16 +08:00
    cz5424
        1
    cz5424  
       2021-09-26 10:05:46 +08:00
    检查一下代理访问是否需要账号密码
    yazoox
        2
    yazoox  
    OP
       2021-09-26 10:14:20 +08:00
    @cz5424 忘记说了,不需要密码。代理是公司内部的结点,用的 squid3 搭的,直接 http://xxx.com:8080 就可以了。浏览器就是用的 switchy omega 这么设置的,正常工作。
    renmu123
        3
    renmu123  
       2021-09-26 10:20:18 +08:00 via Android
    不如魔改一下让三方库支持代理
    dcsuibian
        4
    dcsuibian  
       2021-09-26 10:27:18 +08:00   ❤️ 1
    有点不太明白这个程序是怎么运行的,如果是通过 node 运行的话,不应该让命令行走代理吗?为什么要让 vscode 走代理?
    lin07hui
        5
    lin07hui  
       2021-09-26 10:41:17 +08:00
    vscode 插件开发 or 前端开发 ?
    pecokie
        6
    pecokie  
       2021-09-26 10:48:13 +08:00
    @renmu123 #3 感觉做一个旁路由透明代理可能会还更方便一点
    ai277014717
        7
    ai277014717  
       2021-09-26 10:57:27 +08:00
    使用 terminal 打开 vscode,打开之前设置 http_proxy https_proxy all_porxy 应该可以。
    AreYou0k
        8
    AreYou0k  
       2021-09-26 11:00:58 +08:00
    自己写一个走代理连 dropbox 的 API 的接口, 然后用这个第三方库连自己写的接口. (方案有点捞)
    cweijan
        9
    cweijan  
       2021-09-26 11:13:53 +08:00
    vscode 的代理是设置的内部的服务请求, 没法到影响 axios, 我能想到的方法是用 proxifier 设置系统代理, 这个软件可以匹配指定域名.
    EridanusSora
        10
    EridanusSora  
       2021-09-26 11:30:51 +08:00
    proxifier 代理 node
    archean
        11
    archean  
       2021-09-26 13:38:05 +08:00
    netsh winhttp set proxy proxy-server="http://xxx.com:8080" bypass-list="*.internaldomain.com"
    archean
        12
    archean  
       2021-09-26 13:41:06 +08:00
    @archean 没写完发出去了,这个命令可以让很多命令行程序访问 http/https 协议的时候走代理,可以试试能否满足你的要求。
    ruoxie
        13
    ruoxie  
       2021-09-26 14:17:24 +08:00
    所以你的应用到底是跑在 vscode 里还是浏览器里?
    gitopen
        14
    gitopen  
       2021-09-26 14:39:06 +08:00
    proxifier +1
    yazoox
        15
    yazoox  
    OP
       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
        16
    yazoox  
    OP
       2021-09-27 07:43:07 +08:00
    @archean 说错了,这么设置后,baidu.com 等没有墙的网站,还是能打开的,但 dropbox 墙外的,还是不行。
    gitopen
        17
    gitopen  
       2021-09-27 11:38:16 +08:00
    @yazoox 小伙伴使用姿势有问题,我用了好几年了,macOS 或者 windows 的系统全局代理,都用的好好的。不仅全局代理,还可以分流。。。比 clash pro 的 TUN 模式都好用,都稳定。
    https://i.loli.net/2021/09/27/2WUm6p9An1s3cCD.png
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2752 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:58 · PVG 19:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.