HTTP- ja SOCKS-välityspalvelimet Axiosissa Node.js:lle
Määritä HTTP-välityspalvelin Axiosin Node HTTP -sovittimessa tai käytä SOCKS-agenttia, jos valittu IP on SOCKS-päätepiste.
Axiosin Node HTTP -sovitin hyväksyy HTTP-välityspalvelinobjektin, jossa on palvelin ja numeerinen portti:
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);
Korvaa dokumentaation päätepiste oman palvelusi tai HTTP-välityspalvelinten luettelon HTTP-merkinnällä. Esimerkit käyttävät Nodea; selaimen Axios ei voi valita selaimen verkkovälityspalvelinta näillä asetuksilla. host-kenttään tulee osoite ilman URL-skeemaa.
Välityspalvelinobjektin protocol kuvaa sen kuuntelijaa. Axios 1.21.0:ssa Node HTTP -sovitin käyttää HTTPS-kohteeseen CONNECTia ja neuvottelee sitten TLS:n alkuperäpalvelimen kanssa tunnelin läpi. Vanhemmat julkaisut ovat käyttäneet erilaisia välityspalvelinreittejä, joten asennetulla versiolla on väliä.
SOCKS-URL tarvitsee SOCKS-agentin
HTTP-välityspalvelinobjekti ei valitse SOCKSia. Käytä yhteensopivaa agenttia:
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 poistaa Axiosin HTTP-välityspalvelinkäsittelyn käytöstä SOCKS-agentin tarjoamalla reitillä. Agentin antaminen HTTP- ja HTTPS-kohteille kattaa molemmat skeemat. Tässä socks5h siirtää kohteen DNS-selvityksen SOCKS-puolelle; valitun palvelimen on tuettava kyseistä protokollaa.
Virheiden tulkinta
Axios-virhe voi sisältää vastauksen, kun sivusto palautti epäonnistuneen tilan. Jos vastausta ei ole, tutki virhekoodi ja yhteyden tiedot. Puuttuva moduuli, tukematon protokolla tai yhteensopimaton Node-versio voi epäonnistua ennen pyynnön saapumista päätepisteeseen.
Todennusta vaativille HTTP-välityspalvelimille käytä objektin auth-kenttää ja ylläpitäjän antamia tunnuksia. Kohteen todennusasetukset palvelevat eri osapuolta.