Proxy HTTP i SOCKS w Axios dla Node.js
Skonfiguruj proxy HTTP w adapterze Node HTTP Axios lub użyj agenta SOCKS, jeśli wybrany IP jest punktem końcowym SOCKS.
Adapter Node HTTP Axios przyjmuje obiekt proxy HTTP z hostem i liczbowym 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);
Zastąp dokumentacyjny punkt końcowy wpisem HTTP swojej usługi albo z listy proxy HTTP. Przykłady używają Node; Axios w przeglądarce nie może tymi opcjami wybrać sieciowego proxy przeglądarki. Pole host przyjmuje adres bez schematu URL.
Pole protocol obiektu proxy opisuje jego nasłuchującą usługę. W Axios 1.21.0 adapter Node HTTP używa CONNECT dla celu HTTPS, a następnie negocjuje TLS z serwerem źródłowym przez tunel. Starsze wydania używały innych tras proxy, więc zainstalowana wersja ma znaczenie.
URL SOCKS potrzebuje agenta SOCKS
Obiekt proxy HTTP nie wybiera SOCKS. Użyj zgodnego 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 wyłącza obsługę proxy HTTP w Axios dla trasy dostarczanej przez agenta SOCKS. Podanie agenta dla celów HTTP i HTTPS obejmuje oba schematy. Tutaj socks5h deleguje DNS celu na stronę SOCKS; wybrany serwer musi obsługiwać ten protokół.
Odczytywanie błędów
Błąd Axios może zawierać odpowiedź, gdy witryna zwróciła status niepowodzenia. Bez odpowiedzi sprawdź kod błędu i szczegóły połączenia. Brak modułu, nieobsługiwany protokół lub niezgodna wersja Node mogą spowodować błąd, zanim żądanie dotrze do punktu końcowego.
Dla proxy HTTP z uwierzytelnianiem użyj pola auth obiektu proxy z danymi od operatora. Ustawienia uwierzytelniania celu służą innej stronie.