Lasă Undici să citească variabilele proxy din mediu
Folosește EnvHttpProxyAgent intenționat și separă prioritatea literelor mici, excluderile, URL-urile capturate și no_proxy dinamic.
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.
| Intrare | Când o folosește această versiune |
|---|---|
| Mediu proxy HTTP/HTTPS | Ales la construirea agentului. Creează un dispatcher nou după schimbarea acestor endpointuri. |
no_proxy din mediu | Verificat din nou la trimiterea cererilor. |
noProxy din constructor | Fixează 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ă.