Posredniki HTTP in SOCKS v Axios za Node.js
Nastavite posrednik HTTP v Axiosovem adapterju Node HTTP ali uporabite agent SOCKS, če je izbrani IP končna točka SOCKS.
Axiosov adapter Node HTTP sprejme objekt posrednika HTTP z gostiteljem in številskimi vrati:
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);
Dokumentacijsko končno točko zamenjajte z vnosom HTTP svoje storitve ali s seznama proxyjev HTTP. Primeri uporabljajo Node; Axios v brskalniku s temi možnostmi ne more izbrati omrežnega posrednika brskalnika. Polje host sprejme naslov brez sheme URL.
Polje protocol objekta posrednika opisuje njegovo poslušajočo storitev. V Axios 1.21.0 adapter Node HTTP za cilj HTTPS uporabi CONNECT, nato se prek predora z izvornim strežnikom dogovori za TLS. Starejše izdaje so uporabljale druge poti posrednika, zato je nameščena različica pomembna.
URL SOCKS potrebuje agent SOCKS
Objekt posrednika HTTP ne izbere SOCKS. Uporabite združljiv 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 izklopi Axiosovo obdelavo posrednika HTTP za pot, ki jo zagotovi agent SOCKS. Določitev agenta za cilje HTTP in HTTPS pokrije obe shemi. Tu socks5h prepusti DNS cilja strani SOCKS; izbrani strežnik mora podpirati ta protokol.
Razumevanje napak
Napaka Axios lahko vsebuje odgovor, če je spletna stran vrnila neuspešno stanje. Če ga ni, preverite kodo napake in podrobnosti povezave. Manjkajoč modul, nepodprt protokol ali nezdružljiva različica Node lahko povzroči napako, preden zahteva doseže končno točko.
Za posrednike HTTP z overjanjem uporabite polje auth objekta posrednika s poverilnicami upravljavca. Nastavitve overjanja cilja služijo drugi strani.