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.

Gerelateerde artikelen