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.

Aiheeseen liittyvät artikkelit