Cách sử dụng Proxy trong Node.js (fetch và axios)
Node.js 18 và các phiên bản mới hơn tích hợp fetch thông qua undici. Một ProxyAgent gửi mọi yêu cầu qua gateway với tên người dùng và mật khẩu của bạn.
Các bước
- Cài đặt undici với npm install undici
- Tạo một ProxyAgent với URL gateway và thông tin đăng nhập của bạn
- Truyền nó dưới dạng dispatcher cho fetch
- Thêm mã quốc gia hoặc session id vào tên người dùng khi cần
Mã ví dụ
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());Thay thế USERNAME và PASSWORD bằng thông tin đăng nhập proxy từ trang Proxies của bảng điều khiển. Cổng 10000 là HTTP residential; xem các cổng của mỗi sản phẩm bên dưới.
Mẹo
- Với axios, đặt proxy: { protocol: "http", host, port, auth: { username, password } }
- Tạo một agent cho mỗi session id khi bạn cần nhiều IP sticky cùng lúc
Câu hỏi thường gặp
Nó có hoạt động với các trang HTTPS không?
Có. Agent mở một đường hầm CONNECT đến mục tiêu, vì vậy HTTPS vẫn được mã hóa từ đầu đến cuối.