morelearn1990
V2EX  ›  Node.js

请教一个 nodejs 的网络请求问题。

  •  
  •   morelearn1990 · Feb 12, 2020 · 8595 views
    This topic created in 2465 days ago, the information mentioned may be changed or developed.

    我使用 nodejs 去请求一个 api 地址,这个地址需要翻&&墙。 我挂上代理后,浏览器和 postman 都能请求到数据,nodejs 就是请求不到数据,一直是要么是 connect ETIMEDOUT 要么是 confuse。 nodejs 使用的是 axios 作为请求库,也试过 request,两个都不能请求到数据。 请教一下各位大神,这个可能是什么原因呀。

    12 replies  •  2020-03-02 13:39:31 +08:00
    newlifeinsc
    newlifeinsc
    Feb 12, 2020
    1
    首先你挂的什么代理,有在代码里指名用什么代理吗
    ayase252
    ayase252
    Feb 12, 2020
    2
    用 proxy 属性指定使用的代理,https://github.com/axios/axios#request-config
    morelearn1990
    morelearn1990
    OP
    Feb 12, 2020 via iPhone
    3
    使用的 socket 代理,代码里面没有指明用代理。是否一定要在代码里面指定代理?
    morelearn1990
    morelearn1990
    OP
    Feb 12, 2020 via iPhone
    4
    我刚出来收快递了,我回去试一下
    morelearn1990
    morelearn1990
    OP
    Feb 12, 2020
    5
    @ayase252 @newlifeinsc
    大神你好

    情况有了变化但是数据还是没有获取到;
    axios response 里面的 status 是 200,statusText 是 Connection established ;
    但是 data 还是没有数据,这个情况我还真没遇到过,能否指导一下,谢谢
    newlifeinsc
    newlifeinsc
    Feb 12, 2020
    6
    最好把代码贴出来吧,光这样说不知道什么问题
    yuang
    yuang
    Feb 12, 2020 via Android
    7
    this.axiosInstance.defaults.proxy = false; this.axiosInstance.defaults.httpsAgent = tunnel.httpsOverHttp({ proxy: { host: proxyHost, port: proxyPort } });
    yuang
    yuang
    Feb 12, 2020 via Android
    8
    npm tunnel。需要上代理隧道
    muzuiget
    muzuiget
    Feb 13, 2020
    9
    是不是你的代理是 SOCKS5 协议的,看上去那个库不支持。
    morelearn1990
    morelearn1990
    OP
    Feb 13, 2020
    10
    @yuang 谢谢大神,成功了。这个代理隧道是什么意思呀?
    yuang
    yuang
    Feb 13, 2020 via Android
    11
    @morelearn1990 客气了。原理我也不太懂,只是以前遇到过同样的问题
    rabbbit
    rabbbit
    Mar 2, 2020
    12
    我也遇到了这个问题, 楼主可以贴个示例吗? 用的 axios 的版本是多少?
    我发现有些网站不会走代理,例如下面的 baidu.com

    ```
    axios.defaults.proxy = false;
    axios.defaults.httpsAgent = tunnel.httpsOverHttp({
    // 随便设置个错误的端口也能成功,实际上没走代理
    proxy: { host: "127.0.0.1", port: "7777" }
    });

    axios
    .get("http://baidu.com")
    .then(function(response) {
    console.log("Response with axios was ok: " + response.status);
    })
    .catch(function(error) {
    console.log(error);
    });
    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1884 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 15:48 · PVG 23:48 · LAX 07:48 · JFK 10:48
    ♥ Do have faith in what you're doing.