Folosește EnvHttpProxyAgent când mediul procesului trebuie să aleagă ruta. Folosește un Undici ProxyAgent explicit când endpointul aparține configurației clientului. Atașează-l cererii reale; simpla construire a agentului nu schimbă niciun apel fetch.

import { EnvHttpProxyAgent, fetch } from 'undici';

const dispatcher = new EnvHttpProxyAgent();

try {
  const response = await fetch("https://example.com/", {
    dispatcher,
    signal: AbortSignal.timeout(15000),
  });
  console.log(response.status);
  await response.arrayBuffer();
} finally {
  await dispatcher.close();
}

Salvează codul ca proxy-check.mjs într-un mediu cu module ES și Undici disponibil. Această pornire POSIX furnizează două rute proxy și o listă de excluderi goală:

http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjs

Înlocuiește endpointul de documentație cu proxy-ul tău HTTP sau un candidat din lista de proxy-uri HTTP. Atribuirile se aplică acelei invocări; alte shell-uri au altă sintaxă.

În Undici 8.12.3, variabilele mici http_proxy, https_proxy și no_proxy au prioritate față de echivalentele mari când ambele există. Destinațiile HTTP și HTTPS își aleg propriile setări. O setare doar HTTP oferă și rezervă pentru HTTPS; una doar HTTPS nu oferă HTTP. Nu presupune că se aplică convenția ALL_PROXY a altui client.

IntrareCând o folosește această versiune
Mediu proxy HTTP/HTTPSAles la construirea agentului. Creează un dispatcher nou după schimbarea acestor endpointuri.
no_proxy din mediuVerificat din nou la trimiterea cererilor.
noProxy din constructorFixează explicit politica de excludere în loc să urmărească schimbările ulterioare ale mediului.

Excluderile pot potrivi gazde și porturi opționale; un singur asterisc ocolește proxy-ul pentru toate cererile. Examinează potrivirea destinației dacă proxy-ul nu vede trafic.

În Windows, procesul principal nu diferențiază literele mari în numele mediului, deci HTTP_PROXY și http_proxy nu sunt valori independente. Copiile de mediu Node Worker au o diferențiere de litere documentată. Ține cont de ea înainte să setezi ambele forme pentru testarea priorității. Exemplul închide dispatcherul după lucru; păstrează-l cât timp cererile repetate au nevoie de aceeași politică de endpointuri capturată.

Articole similare