HTTP- en SOCKS-proxy’s in Axios voor Node.js
Configureer een HTTP-proxy in de Node HTTP-adapter van Axios of gebruik een SOCKS-agent als het gekozen IP een SOCKS-endpoint is.
De Node HTTP-adapter van Axios accepteert een HTTP-proxyobject met host en numerieke poort:
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);
Vervang het documentatie-endpoint door een HTTP-vermelding van je dienst of uit de lijst met HTTP-proxy’s. Deze voorbeelden gebruiken Node; Axios in de browser kan met deze opties niet de netwerkproxy van de browser kiezen. Het veld host krijgt het adres zonder URL-schema.
Het veld protocol van het proxyobject beschrijft de listener ervan. In Axios 1.21.0 gebruikt de Node HTTP-adapter CONNECT voor een HTTPS-doel en onderhandelt daarna TLS met de oorsprongsserver door de tunnel. Oudere versies gebruikten andere proxypaden, dus de geïnstalleerde versie is belangrijk.
Een SOCKS-URL heeft een SOCKS-agent nodig
Het HTTP-proxyobject kiest geen SOCKS. Gebruik een compatibele agent:
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 schakelt de HTTP-proxyverwerking van Axios uit voor de route van de SOCKS-agent. Door de agent voor HTTP- en HTTPS-bestemmingen op te geven, dek je beide schema’s af. Hier draagt socks5h de DNS van de bestemming over aan de SOCKS-kant; de gekozen server moet dat protocol ondersteunen.
Fouten interpreteren
Een Axios-fout kan een respons bevatten als de website een niet-succesvolle status terugstuurde. Zonder respons bekijk je de foutcode en verbindingsdetails. Een ontbrekende module, niet-ondersteund protocol of ongeschikte Node-versie kan mislukken voordat een request het endpoint bereikt.
Gebruik voor HTTP-proxy’s met authenticatie het veld auth van het proxyobject met de gegevens van de beheerder. De authenticatie-instellingen van de bestemming zijn voor een andere partij.