L’adaptador HTTP de Node d’Axios accepta un objecte de proxy HTTP amb amfitrió i port numèric:

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

Substituïu el punt d’accés de documentació per una entrada HTTP del vostre servei o de la llista de proxys HTTP. Els exemples utilitzen Node; Axios al navegador no pot seleccionar el proxy de xarxa del navegador amb aquestes opcions. El camp host rep l’adreça sense esquema d’URL.

El camp protocol de l’objecte proxy descriu el seu punt d’escolta. A Axios 1.21.0, l’adaptador HTTP de Node fa servir CONNECT per a una destinació HTTPS i després negocia TLS amb l’origen pel túnel. Versions antigues han utilitzat altres camins de proxy, de manera que la versió instal·lada importa.

Un URL SOCKS necessita un agent SOCKS

L’objecte de proxy HTTP no selecciona SOCKS. Utilitzeu un agent compatible:

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 desactiva la gestió de proxy HTTP d’Axios per a la ruta que proporciona l’agent SOCKS. Donar l’agent per a destinacions HTTP i HTTPS cobreix tots dos esquemes. Aquí socks5h delega el DNS de la destinació al costat SOCKS; el servidor triat ha d’admetre aquest protocol.

Interpretar les fallades

Un error d’Axios pot incloure una resposta quan el lloc retorna un estat no satisfactori. Si no n’hi ha, examineu el codi d’error i els detalls de connexió. Un mòdul absent, un protocol no admès o una versió incompatible de Node pot fallar abans que la petició arribi al punt d’accés.

Per a proxys HTTP autenticats, utilitzeu el camp auth de l’objecte proxy amb les credencials proporcionades per l’operador. Els paràmetres d’autenticació de la destinació corresponen a una altra part.

Articles relacionats