Como Usar Proxies em Node.js (fetch e axios)
Node.js 18 e versões mais recentes incluem fetch através do undici. Um ProxyAgent envia cada solicitação pelo gateway com seu nome de usuário e senha.
Passos
- Instale undici com npm install undici
- Crie um ProxyAgent com a URL do gateway e seu login
- Passe-o como dispatcher para fetch
- Adicione um código de país ou um ID de sessão ao nome de usuário quando necessário
Exemplo de código
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());Substitua USERNAME e PASSWORD pelo login do proxy da página Proxies do console. A porta 10000 é HTTP residencial; veja as portas de cada produto abaixo.
Dicas
- Com axios, defina proxy: { protocol: "http", host, port, auth: { username, password } }
- Crie um agente por ID de sessão quando precisar de vários IPs fixos ao mesmo tempo
Perguntas comuns
Funciona com sites HTTPS?
Sim. O agente abre um túnel CONNECT para o destino, então o HTTPS permanece criptografado de ponta a ponta.