HTTP и SOCKS проксита в Axios за Node.js
Настройте HTTP прокси в Node HTTP адаптера на Axios или използвайте SOCKS агент, когато избраният IP е SOCKS крайна точка.
Node HTTP адаптерът на Axios приема HTTP прокси обект с хост и числов порт:
import axios from 'axios';
const response = await axios.get('https://example.com/', {
adapter: 'http',
proxy: {
protocol: 'http',
host: '203.0.113.10',
port: 8080,
},
timeout: 15000,
});
console.log(response.status);
Заменете документационната крайна точка с HTTP запис от услугата си или от списъка с HTTP проксита. Примерите използват Node; браузърният Axios не може да избира мрежовия прокси на браузъра чрез тези опции. Полето host приема адрес без URL схема.
Полето protocol на прокси обекта описва неговия слушател. В Axios 1.21.0 Node HTTP адаптерът използва CONNECT за HTTPS цел, след което договаря TLS с оригиналния сървър през тунела. По-стари издания използват други прокси пътища, затова инсталираната версия има значение.
SOCKS URL изисква SOCKS агент
HTTP прокси обектът не избира SOCKS. Използвайте съвместим агент:
npm install [email protected] [email protected]
import axios from 'axios';
import { SocksProxyAgent } from 'socks-proxy-agent';
const agent = new SocksProxyAgent('socks5h://203.0.113.10:1080');
try {
const response = await axios.get('https://example.com/', {
adapter: 'http',
httpAgent: agent,
httpsAgent: agent,
proxy: false,
timeout: 15000,
});
console.log(response.status);
} finally {
agent.destroy();
}
proxy: false изключва HTTP прокси обработката на Axios за маршрута от SOCKS агента. Задаването на агента за HTTP и HTTPS цели покрива и двете схеми. Тук socks5h възлага DNS на целта на SOCKS страната; избраният сървър трябва да поддържа протокола.
Разчитане на грешките
Грешка на Axios може да съдържа отговор, ако сайтът е върнал неуспешен статус. Ако няма отговор, проверете кода на грешката и подробностите за връзката. Липсващ модул, неподдържан протокол или несъвместима Node версия може да доведе до грешка, преди заявката да достигне крайната точка.
За HTTP проксита с удостоверяване използвайте полето auth на прокси обекта с данните от оператора. Настройките за удостоверяване на целта са за друга страна.