HTTP at SOCKS Proxy sa Axios para sa Node.js
Mag-configure ng HTTP proxy sa Node HTTP adapter ng Axios, o gumamit ng SOCKS agent kung SOCKS endpoint ang napiling IP.
Tumatanggap ang Node HTTP adapter ng Axios ng HTTP proxy object na may host at numerikong 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);
Palitan ang documentation endpoint ng HTTP entry mula sa serbisyo mo o sa listahan ng mga HTTP proxy. Node ang gamit ng mga halimbawa; hindi mapipili ng browser Axios ang network proxy ng browser gamit ang mga opsyong ito. Address na walang URL scheme ang tinatanggap ng host field.
Inilalarawan ng protocol ng proxy object ang listener nito. Sa Axios 1.21.0, gumagamit ang Node HTTP adapter ng CONNECT para sa HTTPS target, saka nakikipagnegosasyon ng TLS sa origin sa loob ng tunnel. Ibang proxy path ang ginamit ng mas lumang release, kaya mahalaga ang naka-install na bersiyon.
Kailangan ng SOCKS URL ng SOCKS agent
Hindi pinipili ng HTTP proxy object ang SOCKS. Gumamit ng katugmang 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();
}
Dini-disable ng proxy: false ang HTTP proxy handling ng Axios para sa rutang ibinibigay ng SOCKS agent. Ang pagbibigay ng agent para sa HTTP at HTTPS na destinasyon ay sumasaklaw sa parehong scheme. Dito, ipinauubaya ng socks5h ang DNS ng destinasyon sa SOCKS side; kailangang suportahan ng napiling server ang protocol na iyon.
Pag-unawa sa mga pagkabigo
Maaaring may response ang Axios error kapag nagbalik ang website ng hindi matagumpay na status. Kung wala, suriin ang error code at detalye ng koneksyon. Maaaring pumalya ang nawawalang module, hindi suportadong protocol o hindi katugmang bersiyon ng Node bago makarating ang request sa endpoint.
Para sa HTTP proxy na may authentication, gamitin ang auth field ng proxy object kasama ang mga kredensyal ng operator. Para sa ibang panig ang authentication setting ng destinasyon.