GBProxies

如何在Node.js(fetch和axios)中使用代理

Node.js 18及更新版本通过undici提供fetch功能。ProxyAgent会将每个请求通过网关发送,使用你的用户名和密码。

步骤

  1. 使用npm install undici安装undici
  2. 使用网关URL和你的登录信息创建ProxyAgent
  3. 将其作为dispatcher传递给fetch
  4. 需要时在用户名中添加国家代码或会话ID

示例代码

import { ProxyAgent, fetch } from "undici";

const agent = new ProxyAgent({
  uri: "http://gw.gbproxies.cc:10000",
  token: "Basic " + Buffer.from("USERNAME-cc-de:PASSWORD").toString("base64"),
});
const r = await fetch("https://api.ipify.org?format=json", { dispatcher: agent });
console.log(await r.json());

将USERNAME和PASSWORD替换为控制台代理页面中的登录信息。端口10000是住宅HTTP代理;请查看下方每个产品的端口。

提示

  • 使用axios时,设置proxy: { protocol: "http", host, port, auth: { username, password } }
  • 当你需要同时使用多个固定IP时,为每个会话ID创建一个agent

常见问题

它适用于HTTPS网站吗?

是的。agent会打开到目标的CONNECT隧道,因此HTTPS保持端到端加密。

如何在Node.js(fetch和axios)中使用代理