Proxies HTTP e SOCKS en Axios para Node.js
Configura un proxy HTTP no adaptador HTTP de Node de Axios ou usa un axente SOCKS se a IP seleccionada é un punto de acceso SOCKS.
O adaptador HTTP de Node de Axios acepta un obxecto de proxy HTTP con host e porto numérico:
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);
Substitúe o punto de acceso de documentación por unha entrada HTTP do teu servizo ou da lista de proxys HTTP. Estes exemplos usan Node; Axios no navegador non pode seleccionar o proxy de rede do navegador con estas opcións. O campo host recibe o enderezo sen esquema de URL.
O campo protocol do obxecto proxy describe o seu punto de escoita. En Axios 1.21.0, o adaptador HTTP de Node usa CONNECT para un destino HTTPS e despois negocia TLS coa orixe polo túnel. Versións antigas usaron outros camiños de proxy, polo que importa a versión instalada.
Un URL SOCKS necesita un axente SOCKS
O obxecto de proxy HTTP non selecciona SOCKS. Usa un axente 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 a xestión de proxy HTTP de Axios para a ruta que fornece o axente SOCKS. Dar o axente para destinos HTTP e HTTPS cobre os dous esquemas. Aquí socks5h delega o DNS do destino no lado SOCKS; o servidor escollido debe admitir ese protocolo.
Interpretar os fallos
Un erro de Axios pode incluír unha resposta se o sitio devolveu un estado non satisfactorio. Sen resposta, revisa o código de erro e os detalles de conexión. Un módulo ausente, un protocolo non admitido ou unha versión incompatible de Node pode fallar antes de que a petición chegue ao punto de acceso.
Para proxies HTTP autenticados, usa o campo auth do obxecto proxy coas credenciais do operador. Os axustes de autenticación do destino corresponden a outra parte.