Undici го рутира барањето преку dispatcher. Направете ProxyAgent за избраното HTTP прокси и предадете го на fetch повикот, наместо да го менувате глобалниот dispatcher на целиот процес.

npm install [email protected]
import { fetch, ProxyAgent } from 'undici';

const dispatcher = new ProxyAgent('http://203.0.113.10:8080');

try {
  const response = await fetch('https://example.com/', {
    dispatcher,
    signal: AbortSignal.timeout(15000),
  });

  console.log(response.status);
  console.log(await response.text());
} finally {
  await dispatcher.close();
}

Зачувајте ја програмата како .mjs датотека или користете проект со ES модули. Документацискиот IP заменете го со HTTP прокси од листата со HTTP прокси-сервери. Увозот намерно ја користи fetch имплементацијата на Undici, па опцијата dispatcher му припаѓа на прикажаниот клиент.

Проверете ја Node компатибилноста пред да го обвините IP

Поддржаните Node верзии зависат од изданието на Undici пакетот. Примерот користи Undici 8.12.3, што бара Node 22.19.0 или понов. Грешка при вчитување модул или верзија на извршната околина се јавува пред барањето да стигне до проксито. Проверете ги барањата на инсталираниот пакет, не претпоставувајте дека секој Node го извршува најновиот Undici.

Еден агент може да служи повторени барања

Кратката програма го затвора dispatcher на крај. Ако активна апликација праќа повеќе барања преку иста точка, задржете го агентот за таа работа и затворете го кога таа ќе заврши. Создавање и затворање агент за секој URL спречува корисна повторна употреба на врски.

Глобален dispatcher е соодветен само ако намерно сакате поширока промена. Изричното предавање олеснува тест на прокси IP без менување излезни барања на друга компонента.

Погледнете го одговорот и фазата на неуспех

Fetch не го смета секој HTTP статус на грешка за одбиен Promise. 403 или 429 може да е вистински одговор од страницата пренесен преку прокси. Грешка на врската или тунелот може наместо тоа да го одбие барањето пред да има објект на одговор. Читајте го статусот одделно од грешките што ги исфрла повикот.

Ако е потребна автентикација, ProxyAgent на Undici има опции во конструкторот. Не додавајте заглавје за прокси авторизација во заглавјата на барањето до страницата; агентот обработува друг дел од врската.

Поврзани статии