Proksi HTTP dan SOCKS dalam Axios untuk Node.js
Konfigurasikan proksi HTTP dalam penyesuai Node HTTP Axios atau gunakan ejen SOCKS jika IP dipilih ialah titik akhir SOCKS.
Penyesuai Node HTTP Axios menerima objek proksi HTTP dengan hos dan port berangka:
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);
Gantikan titik akhir dokumentasi dengan entri HTTP daripada perkhidmatan anda atau senarai proksi HTTP. Contoh menggunakan Node; Axios dalam pelayar tidak boleh memilih proksi rangkaian pelayar melalui pilihan ini. Medan host menerima alamat tanpa skema URL.
Medan protocol objek proksi menerangkan pendengarnya. Dalam Axios 1.21.0, penyesuai Node HTTP menggunakan CONNECT untuk sasaran HTTPS, kemudian merundingkan TLS dengan pelayan asal melalui terowong. Keluaran lama menggunakan laluan proksi yang berbeza, jadi versi yang dipasang penting.
URL SOCKS memerlukan ejen SOCKS
Objek proksi HTTP tidak memilih SOCKS. Gunakan ejen yang serasi:
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 melumpuhkan pengendalian proksi HTTP Axios bagi laluan yang disediakan ejen SOCKS. Menyediakan ejen untuk destinasi HTTP dan HTTPS meliputi kedua-dua skema. Di sini socks5h menyerahkan DNS destinasi kepada pihak SOCKS; pelayan pilihan mesti menyokong protokol itu.
Memahami kegagalan
Ralat Axios boleh mengandungi respons apabila laman mengembalikan status tidak berjaya. Tanpa respons, periksa kod ralat dan butiran sambungan. Modul tiada, protokol tidak disokong atau versi Node tidak serasi boleh gagal sebelum permintaan mencapai titik akhir.
Untuk proksi HTTP dengan pengesahan, gunakan medan auth objek proksi bersama bukti kelayakan daripada pengendali. Tetapan pengesahan destinasi digunakan untuk pihak yang berbeza.