HTTP- och SOCKS-proxyer i Axios för Node.js
Konfigurera en HTTP-proxy i Axios Node HTTP-adapter eller använd en SOCKS-agent när vald IP är en SOCKS-ändpunkt.
Axios Node HTTP-adapter tar emot ett HTTP-proxyobjekt med värd och 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);
Ersätt dokumentationens ändpunkt med en HTTP-post från din tjänst eller listan med HTTP-proxyer. Exemplen använder Node; Axios i webbläsaren kan inte välja webbläsarens nätverksproxy med dessa alternativ. Fältet host tar adressen utan URL-schema.
Proxyobjektets protocol beskriver dess lyssnare. I Axios 1.21.0 använder Node HTTP-adaptern CONNECT för ett HTTPS-mål och förhandlar sedan TLS med ursprungsservern genom tunneln. Äldre utgåvor har använt andra proxyvägar, så installerad version spelar roll.
En SOCKS-URL behöver en SOCKS-agent
HTTP-proxyobjektet väljer inte SOCKS. Använd 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 stänger av Axios HTTP-proxyhantering för rutten SOCKS-agenten tillhandahåller. Att ange agenten för HTTP- och HTTPS-mål täcker båda schemana. Här överlåter socks5h målets DNS till SOCKS-sidan; vald server måste stödja protokollet.
Tolka fel
Ett Axios-fel kan innehålla ett svar när webbplatsen returnerade en misslyckad status. Utan svar undersöker du felkoden och anslutningsdetaljerna. En saknad modul, ett protokoll som inte stöds eller en inkompatibel Node-version kan misslyckas innan förfrågan når ändpunkten.
För HTTP-proxyer med autentisering använder du proxyobjektets auth-fält med uppgifterna från operatören. Målets autentiseringsinställningar gäller en annan part.