Use EnvHttpProxyAgent quando o ambiente do processo deve escolher a rota. Use um ProxyAgent explícito do Undici quando o endpoint deve fazer parte da configuração do cliente. Passe-o à requisição real: apenas criar o agente não muda nenhuma chamada 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();
}

Salve o código como proxy-check.mjs em um ambiente de módulos ES com Undici disponível. A inicialização POSIX abaixo fornece as duas rotas de proxy e uma lista de exclusões vazia:

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

Substitua o endpoint de documentação pelo seu proxy HTTP ou um candidato da lista de proxies HTTP. As atribuições valem para essa execução; outros shells usam sintaxe diferente.

No Undici 8.12.3, as variáveis minúsculas http_proxy, https_proxy e no_proxy têm prioridade sobre as equivalentes maiúsculas quando ambas existem. Destinos HTTP e HTTPS escolhem suas próprias configurações. Uma configuração só HTTP também fornece fallback para HTTPS; uma só HTTPS não atende HTTP. Não suponha que a convenção ALL_PROXY de outro cliente se aplique.

EntradaQuando esta versão a utiliza
Ambiente de proxy HTTP/HTTPSEscolhido na construção do agente. Crie um dispatcher novo depois de alterar esses endpoints.
no_proxy do ambienteÉ verificado novamente no despacho das requisições.
noProxy do construtorFixa explicitamente a política de exclusões, sem seguir alterações posteriores do ambiente.

As exclusões podem corresponder a hosts e portas opcionais; um asterisco sozinho faz todas as requisições contornarem o proxy. Examine a correspondência do destino se o proxy não receber tráfego.

No Windows, o processo principal não distingue maiúsculas nos nomes do ambiente, então HTTP_PROXY e http_proxy não são valores independentes. As cópias de ambiente de Node Worker têm uma distinção de maiúsculas documentada. Considere isso antes de definir as duas grafias para testar a prioridade. O exemplo fecha o dispatcher após o trabalho; mantenha-o enquanto requisições repetidas precisarem da mesma política de endpoints capturada.

Artigos relacionados