L’adattatore HTTP Node di Axios accetta un oggetto proxy HTTP con host e porta numerica:

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

Sostituisci l’endpoint di documentazione con una voce HTTP del tuo servizio o dell’elenco dei proxy HTTP. Gli esempi usano Node; Axios nel browser non può scegliere il proxy di rete del browser tramite queste opzioni. Il campo host riceve l’indirizzo senza schema URL.

Il campo protocol dell’oggetto proxy descrive il suo listener. In Axios 1.21.0 l’adattatore HTTP Node usa CONNECT per una destinazione HTTPS, poi negozia TLS con l’origine attraverso il tunnel. Le vecchie versioni hanno usato percorsi proxy diversi, quindi la versione installata conta.

Un URL SOCKS richiede un agente SOCKS

L’oggetto proxy HTTP non seleziona SOCKS. Usa un agente compatibile:

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 disattiva la gestione dei proxy HTTP di Axios per il percorso fornito dall’agente SOCKS. Fornire l’agente per destinazioni HTTP e HTTPS copre entrambi gli schemi. Qui socks5h delega il DNS della destinazione al lato SOCKS; il server scelto deve supportare quel protocollo.

Interpretare gli errori

Un errore Axios può includere una risposta se il sito ha restituito uno stato non riuscito. In assenza di risposta, esamina il codice di errore e i dettagli della connessione. Un modulo mancante, un protocollo non supportato o una versione Node incompatibile può fallire prima che la richiesta raggiunga l’endpoint.

Per proxy HTTP autenticati, usa il campo auth dell’oggetto proxy con le credenziali fornite dal gestore. Le impostazioni di autenticazione della destinazione riguardano un’altra parte.

Articoli correlati