HTTP ir SOCKS tarpiniai serveriai Axios programoje Node.js aplinkoje
Nustatykite HTTP tarpinį serverį Axios Node HTTP adapteryje arba naudokite SOCKS agentą, jei pasirinktas IP yra SOCKS galinis taškas.
Axios Node HTTP adapteris priima HTTP tarpinio serverio objektą su serverio adresu ir skaitiniu prievadu:
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);
Dokumentacijos galinį tašką pakeiskite savo tarnybos arba HTTP tarpinių serverių sąrašo HTTP įrašu. Pavyzdžiai skirti Node; naršyklės Axios negali šiomis parinktimis pasirinkti naršyklės tinklo tarpinio serverio. Laukas host priima adresą be URL schemos.
Tarpinio serverio objekto protocol aprašo jo klausymo tarnybą. Axios 1.21.0 Node HTTP adapteris HTTPS tikslui naudoja CONNECT, tada tuneliu su pradiniu serveriu suderina TLS. Senesnės laidos naudojo kitus tarpinių serverių kelius, todėl įdiegta versija svarbi.
SOCKS URL reikia SOCKS agento
HTTP tarpinio serverio objektas nepasirenka SOCKS. Naudokite suderinamą 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 išjungia Axios HTTP tarpinio serverio apdorojimą SOCKS agento pateiktam maršrutui. Nurodžius agentą HTTP ir HTTPS paskirtims, aprėpiamos abi schemos. Čia socks5h perduoda paskirties DNS SOCKS pusei; pasirinktas serveris turi palaikyti tą protokolą.
Klaidų aiškinimas
Axios klaidoje gali būti atsakymas, kai svetainė grąžina nesėkmingą būseną. Jei atsakymo nėra, tikrinkite klaidos kodą ir ryšio informaciją. Trūkstamas modulis, nepalaikomas protokolas ar nesuderinama Node versija gali sutrikdyti užklausą dar iki galinio taško pasiekimo.
HTTP tarpiniams serveriams su tapatybės nustatymu naudokite objekto lauką auth ir operatoriaus pateiktus prisijungimo duomenis. Paskirties tapatybės nustatymo nuostatos skirtos kitai šaliai.