HTTP- kaj SOCKS-prokuriloj en Axios por Node.js
Agordu HTTP-prokurilon en la Node HTTP-adaptilo de Axios, aŭ uzu SOCKS-agenton kiam la elektita IP estas SOCKS-finpunkto.
La Node HTTP-adaptilo de Axios akceptas HTTP-prokurilan objekton kun gastiganto kaj numera pordo:
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);
Anstataŭigu la dokumentan finpunkton per HTTP-ero de via servo aŭ el la listo de HTTP-prokuriloj. La ekzemploj uzas Node; retumila Axios ne povas elekti la retumilan retprokurilon per ĉi tiuj opcioj. La kampo host ricevas adreson sen URL-skemo.
La protocol de la prokurila objekto priskribas ĝian aŭskultanton. En Axios 1.21.0 la Node HTTP-adaptilo uzas CONNECT por HTTPS-celo, poste negocas TLS kun la origino tra la tunelo. Pli malnovaj eldonoj uzis aliajn prokurilajn vojojn, do la instalita versio gravas.
SOCKS-URL bezonas SOCKS-agenton
La HTTP-prokurila objekto ne elektas SOCKS. Uzu kongruan agenton:
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 malŝaltas la HTTP-prokurilan traktadon de Axios por la vojo liverita de la SOCKS-agento. Doni la agenton por HTTP- kaj HTTPS-celoj kovras ambaŭ skemojn. Ĉi tie socks5h delegas la celan DNS al la SOCKS-flanko; la elektita servilo devas subteni tiun protokolon.
Interpreti fiaskojn
Axios-eraro povas enhavi respondon kiam la retejo liveris malsukcesan staton. Sen respondo, kontrolu la erarkodon kaj konektajn detalojn. Mankanta modulo, nesubtenata protokolo aŭ nekongrua Node-versio povas kaŭzi fiaskon antaŭ ol peto atingas la finpunkton.
Por HTTP-prokuriloj kun aŭtentikigo, uzu la kampon auth de la prokurila objekto kun ensalutiloj donitaj de la funkciiganto. La aŭtentikigaj agordoj de la celo servas alian partion.