如何配置 node-fetch 以使用公司代理?

Posted

技术标签:

【中文标题】如何配置 node-fetch 以使用公司代理?【英文标题】:How to configure node-fetch to use the company proxy? 【发布时间】:2020-05-26 11:38:01 【问题描述】:

我正在执行一个需要从第三方 api 获取结果的独立 nodejs 脚本(不涉及 Web 服务器)。该程序使用 'node-fetch' 来执行 fetch(url),我从命令行使用 node .\test.js 运行它。

当我连接到我们公司的网络时它会失败,但在直接互联网上工作正常。我已经在 npm 中配置了代理设置,可以看到 npm config ls 显示了代理和 https-proxy 的正确值。

所以问题是: 1.通过node运行test.js不会从npm中选择代理配置吗? 2. 如何确保fetch(url) 调用通过我们的代理?

提前致谢

【问题讨论】:

【参考方案1】:

这对我有用,请尝试使用: https://github.com/TooTallNate/node-http-proxy-agent

形成的请求将与此类似:

fetch('accessUrl', agent: new HttpsProxyAgent('proxyHost:proxyPort'))
    .then(function (res) 
    )

【讨论】:

如果身份验证呢? @PeterPalmer 对我来说,如果您需要身份验证 username:password@proxy.com:8080 ,这可以工作;即使从 curl 中执行此格式,通常也会使用此格式

以上是关于如何配置 node-fetch 以使用公司代理?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 node-fetch 查看发送的标头?

如何使用公司代理为 iOS 模拟器设置 Charles 代理

配置 Fiddler 以使用公司网络的代理?

Nginx 如何设置反向代理

如何使用 node-fetch 获取网页?

如何在代理环境中使用 vagrant?