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 проксија. Увоз намерно користи Undici-јеву fetch имплементацију, па опција dispatcher припада приказаном клијенту.

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

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

Један агент може служити поновљеним захтевима

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

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

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

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

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

Повезани чланци