วิธีใช้ Proxy ใน Node.js (fetch และ axios)
Node.js 18 และใหม่กว่าส่ง fetch ผ่าน undici ProxyAgent ส่งทุกคำขอผ่านเกตเวย์ด้วยชื่อผู้ใช้และรหัสผ่านของคุณ
ขั้นตอน
- ติดตั้ง undici ด้วย npm install undici
- สร้าง ProxyAgent ด้วย URL เกตเวย์และข้อมูลเข้าสู่ระบบของคุณ
- ส่งมันเป็น dispatcher ไปยัง fetch
- เพิ่มรหัสประเทศหรือ session 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 ด้วยข้อมูลเข้าสู่ระบบ proxy จากหน้า Proxies ของคอนโซล พอร์ต 10000 คือ residential HTTP; ดูพอร์ตของทุกผลิตภัณฑ์ด้านล่าง
เคล็ดลับ
- กับ axios ตั้งค่า proxy: { protocol: "http", host, port, auth: { username, password } }
- สร้าง agent หนึ่งรายการต่อ session id เมื่อคุณต้องการ sticky IP หลายรายการพร้อมกัน
คำถามทั่วไป
ใช้งานกับเว็บไซต์ HTTPS ได้หรือไม่?
ได้ Agent จะเปิดอุโมงค์ CONNECT ไปยังเป้าหมาย ดังนั้น HTTPS จะยังคงเข้ารหัสตั้งแต่ต้นจนจบ