HTTP- og SOCKS-proxyer i Axios for Node.js
Konfigurer en HTTP-proxy i Axios’ Node HTTP-adapter, eller bruk en SOCKS-agent når den valgte IP-en er et SOCKS-endepunkt.
Axios’ Node HTTP-adapter godtar et HTTP-proxyobjekt med vert 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);
Bytt ut dokumentasjonsendepunktet med en HTTP-oppføring fra tjenesten din eller listen over HTTP-proxyer. Eksemplene bruker Node; Axios i nettleseren kan ikke velge nettleserens nettverksproxy med disse alternativene. Feltet host tar adressen uten URL-skjema.
Proxyobjektets protocol beskriver lyttepunktet. I Axios 1.21.0 bruker Node HTTP-adapteren CONNECT til et HTTPS-mål og forhandler deretter TLS med opprinnelsesserveren gjennom tunnelen. Eldre utgaver har brukt andre proxyveier, så den installerte versjonen betyr noe.
En SOCKS-URL trenger en SOCKS-agent
HTTP-proxyobjektet velger ikke SOCKS. Bruk 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 av Axios’ HTTP-proxybehandling for ruten SOCKS-agenten gir. Å oppgi agenten for HTTP- og HTTPS-mål dekker begge skjemaene. Her overlater socks5h målets DNS til SOCKS-siden; den valgte serveren må støtte protokollen.
Forstå feil
En Axios-feil kan inneholde et svar når nettstedet returnerte en mislykket status. Uten svar undersøker du feilkoden og tilkoblingsdetaljene. En manglende modul, en protokoll som ikke støttes, eller en inkompatibel Node-versjon kan feile før forespørselen når endepunktet.
For HTTP-proxyer med autentisering bruker du proxyobjektets auth-felt med opplysningene fra operatøren. Målets autentiseringsinnstillinger gjelder en annen part.