HTTP- og SOCKS-proxyer i Axios til Node.js
Konfigurer en HTTP-proxy i Axios' Node HTTP-adapter, eller brug en SOCKS-agent, når den valgte IP er et SOCKS-endepunkt.
Axios' Node HTTP-adapter accepterer et HTTP-proxyobjekt med vært og numerisk 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);
Erstat dokumentationsendepunktet med en HTTP-post fra din tjeneste eller listen over HTTP-proxyer. Eksemplerne bruger Node; Axios i browseren kan ikke vælge browserens netværksproxy med disse indstillinger. Feltet host tager adressen uden URL-skema.
Proxyobjektets protocol beskriver dets lyttepunkt. I Axios 1.21.0 bruger Node HTTP-adapteren CONNECT til et HTTPS-mål og forhandler derefter TLS med oprindelsesserveren gennem tunnelen. Ældre udgaver har brugt andre proxyveje, så den installerede version har betydning.
En SOCKS-URL kræver en SOCKS-agent
HTTP-proxyobjektet vælger ikke SOCKS. Brug en kompatibel 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 slår Axios' HTTP-proxyhåndtering fra for ruten leveret af SOCKS-agenten. Angivelse af agenten for HTTP- og HTTPS-destinationer dækker begge skemaer. Her overlader socks5h destinationens DNS til SOCKS-siden; den valgte server skal understøtte protokollen.
Forstå fejl
En Axios-fejl kan indeholde et svar, når webstedet returnerede en status uden succes. Uden et svar skal du undersøge fejlkoden og forbindelsesdetaljerne. Et manglende modul, en ikke-understøttet protokol eller en inkompatibel Node-version kan fejle, før forespørgslen når endepunktet.
For HTTP-proxyer med godkendelse bruges proxyobjektets auth-felt med oplysninger fra operatøren. Destinationens godkendelsesindstillinger gælder en anden part.