Der Node-HTTP-Adapter von Axios akzeptiert ein HTTP-Proxyobjekt mit Host und numerischem Port:

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);

Ersetzen Sie den Dokumentationsendpunkt durch einen HTTP-Eintrag Ihres Dienstes oder aus der HTTP-Proxy-Liste. Diese Beispiele verwenden Node; Axios im Browser kann mit diesen Optionen nicht den Netzwerkproxy des Browsers wählen. Das Feld host erwartet die Adresse ohne URL-Schema.

Das Feld protocol des Proxyobjekts beschreibt dessen Listener. In Axios 1.21.0 nutzt der Node-HTTP-Adapter CONNECT für ein HTTPS-Ziel und handelt anschließend TLS mit dem Ursprungsserver durch den Tunnel aus. Ältere Versionen nutzten andere Proxywege, daher ist die installierte Version wichtig.

Eine SOCKS-URL braucht einen SOCKS-Agent

Das HTTP-Proxyobjekt wählt kein SOCKS. Verwenden Sie stattdessen einen kompatiblen 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 deaktiviert die HTTP-Proxyverarbeitung von Axios für den vom SOCKS-Agent bereitgestellten Weg. Wird der Agent für HTTP- und HTTPS-Ziele angegeben, deckt das beide Schemas ab. Hier überlässt socks5h die DNS-Auflösung des Ziels der SOCKS-Seite; der gewählte Server muss dieses Protokoll unterstützen.

Fehler auswerten

Ein Axios-Fehler kann eine Antwort enthalten, wenn die Website einen erfolglosen Status zurückgibt. Fehlt sie, prüfen Sie Fehlercode und Verbindungsdetails. Ein fehlendes Modul, ein nicht unterstütztes Protokoll oder eine inkompatible Node-Version kann scheitern, bevor eine Anfrage den Endpunkt erreicht.

Für authentifizierte HTTP-Proxys verwenden Sie das Feld auth des Proxyobjekts mit den Zugangsdaten des Betreibers. Die Authentifizierungseinstellungen des Ziels gelten einer anderen Gegenstelle.

Ähnliche Artikel