HTTP a SOCKS proxy v Axios pro Node.js
Nastavte HTTP proxy v Node HTTP adaptéru Axios, nebo použijte SOCKS agenta, pokud je vybraná IP endpointem SOCKS.
Node HTTP adaptér Axios přijímá objekt HTTP proxy s hostitelem a číselným portem:
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);
Nahraďte dokumentační endpoint HTTP záznamem své služby nebo ze seznamu HTTP proxy. Příklady používají Node; Axios v prohlížeči nemůže těmito volbami vybrat síťovou proxy prohlížeče. Pole host přijímá adresu bez schématu URL.
Pole protocol objektu proxy popisuje jeho naslouchající službu. V Axios 1.21.0 používá Node HTTP adaptér CONNECT pro HTTPS cíl a pak přes tunel vyjedná TLS s původním serverem. Starší verze používaly jiné proxy cesty, takže nainstalovaná verze je důležitá.
SOCKS URL potřebuje SOCKS agenta
Objekt HTTP proxy nevybírá SOCKS. Použijte kompatibilního agenta:
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 vypíná zpracování HTTP proxy v Axios pro trasu dodanou SOCKS agentem. Zadání agenta pro HTTP i HTTPS cíle pokrývá obě schémata. Zde socks5h předává DNS cíle straně SOCKS; vybraný server musí tento protokol podporovat.
Vyhodnocení chyb
Chyba Axios může obsahovat odpověď, pokud web vrátil neúspěšný stav. Bez ní zkoumejte kód chyby a podrobnosti spojení. Chybějící modul, nepodporovaný protokol nebo nekompatibilní verze Node mohou selhat dřív, než požadavek dosáhne endpointu.
Pro HTTP proxy s autentizací použijte pole auth objektu proxy s údaji od provozovatele. Nastavení autentizace cíle slouží jiné protistraně.