Кірістірілген жүріс және унчи#
Түйіннің жаһандық fetch Оны бер. ProxyAgent бірге сұрау үшін dispatcher опция немесе оны бүкіл әлем бойынша бір рет орнату setGlobalDispatcher.
import { fetch, ProxyAgent, setGlobalDispatcher } from "undici";
const proxy = new ProxyAgent("http://USER-cc-us:PASS@res.proxy-cyber.com:9000");
// Per request
const res = await fetch("https://api.ipify.org", { dispatcher: proxy });
console.log(await res.text());
// Or globally, for every fetch in the process
setGlobalDispatcher(proxy);A ProxyAgent бассейндер қосылымдары, сондықтан дәйекті сұраулар бір қосылымды қайта пайдалана алады, сондықтан бір шығу. Бір сұраудан жаңа шығу үшін агентті жасаңыз pipelining: 0 және connections: 1, немесе жай ғана басқа пайдаланыңыз -sid- логикалық сессия үшін.
Axios#
Axios-тің өзі proxy опция HTTPS сенімді туннельдеу емес,; стандартты тәсіл агент болып табылады https-proxy-agent және proxy: false.
import axios from "axios";
import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent("http://USER-cc-de-city-berlin-sid-cart42-ttl-15m:PASS@res.proxy-cyber.com:9000");
const client = axios.create({ httpsAgent: agent, httpAgent: agent, proxy: false, timeout: 30000 });
const { data } = await client.get("https://api.ipify.org");
console.log(data);алды#
import got from "got";
import { HttpsProxyAgent } from "https-proxy-agent";
const agent = new HttpsProxyAgent("http://USER-cc-us:PASS@res.proxy-cyber.com:9000");
const body = await got("https://api.ipify.org", { agent: { https: agent, http: agent }, timeout: { request: 30000 } }).text();
console.log(body);SOCKS5#
import fetch from "node-fetch";
import { SocksProxyAgent } from "socks-proxy-agent";
const agent = new SocksProxyAgent(process.env.PROXY_URL);
const response = await fetch("https://api.ipify.org", { agent });
console.log(await response.text());Қоршаған орта айнымалылары#
unici оқымайды HTTPS_PROXY әдепкі бойынша. Соңғы унчи нұсқалары кеме EnvHttpProxyAgent, бұл жасайды; оны жаһандық диспетчер және бүкіл процесс ретінде орнатыңыз, оның ішінде элетке салынған үшінші тарап кітапханалары прокси арқылы өтеді.
import { EnvHttpProxyAgent, setGlobalDispatcher } from "undici";
// HTTPS_PROXY=http://USER-cc-us:PASS@res.proxy-cyber.com:9000 NO_PROXY=localhost node app.js
setGlobalDispatcher(new EnvHttpProxyAgent());Кездейсоқтық және айналу#
- Біреуі
ProxyAgentәр жабысқақ сеанс үшін (әр түрлі-sid-), сол сессияның барлық сұрауларымен бөлісті. - Кең айналдыру үшін бір агентті сақтаңыз, бірақ қосылымды қайта пайдалануды өшіріңіз немесе N сеанс идентификаторлары бар N агенттерін іске қосыңыз және оларды дөңгелек бекітіңіз.
- Көру
UND_ERR_SOCKETжәнеECONNRESET: тұрғын үйге шығу кетті; бір рет қайталап көріңіз, келесі қосылым басқасын таңдайды.
Адамдар қоятын сұрақтар#
Неліктен осьтер HTTPS үшін менің проксиімді елемейді?
Оның кірістірілген прокси қолдауы CONNECT туннельдері үшін шектеулі. https-прокси-агентті https Агент ретінде пайдаланыңыз және прокси орнатыңыз: жалған, сондықтан осьтер оны өзі өңдеуге тырыспайды.
Мен кейбір сұрауларды ғана сұрай аламын ба?
Диспетчерді немесе агентті қажет сұрауларға өткізіп, басқаларды қараусыз қалдырыңыз; GlobalDisper деп атамайынша, жаһандық ештеңе жоқ.