HTTP και SOCKS proxy στο Axios για Node.js
Ρυθμίστε HTTP proxy στον προσαρμογέα Node HTTP του Axios ή χρησιμοποιήστε SOCKS agent αν η επιλεγμένη IP είναι τελικό σημείο SOCKS.
Ο προσαρμογέας Node HTTP του Axios δέχεται αντικείμενο HTTP proxy με κεντρικό υπολογιστή και αριθμητική θύρα:
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);
Αντικαταστήστε το τελικό σημείο τεκμηρίωσης με καταχώριση HTTP από την υπηρεσία σας ή τη λίστα HTTP proxy. Τα παραδείγματα χρησιμοποιούν Node· το Axios σε πρόγραμμα περιήγησης δεν μπορεί να επιλέξει το proxy δικτύου του μέσω αυτών των επιλογών. Το πεδίο host παίρνει διεύθυνση χωρίς σχήμα URL.
Το protocol του αντικειμένου proxy περιγράφει το σημείο ακρόασής του. Στο Axios 1.21.0, ο προσαρμογέας Node HTTP χρησιμοποιεί CONNECT για στόχο HTTPS και κατόπιν διαπραγματεύεται TLS με τον αρχικό διακομιστή μέσα από τη σήραγγα. Παλαιότερες εκδόσεις χρησιμοποιούσαν άλλες διαδρομές proxy, οπότε έχει σημασία η εγκατεστημένη έκδοση.
Ένα URL SOCKS χρειάζεται SOCKS agent
Το αντικείμενο HTTP proxy δεν επιλέγει SOCKS. Χρησιμοποιήστε συμβατό 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 απενεργοποιεί τον χειρισμό HTTP proxy του Axios για τη διαδρομή του SOCKS agent. Η παροχή του agent για προορισμούς HTTP και HTTPS καλύπτει και τα δύο σχήματα. Εδώ το socks5h αναθέτει το DNS του προορισμού στην πλευρά SOCKS· ο επιλεγμένος διακομιστής πρέπει να υποστηρίζει αυτό το πρωτόκολλο.
Ερμηνεία σφαλμάτων
Ένα σφάλμα Axios μπορεί να περιλαμβάνει απόκριση όταν ο ιστότοπος επέστρεψε ανεπιτυχή κατάσταση. Χωρίς απόκριση, εξετάστε τον κωδικό σφάλματος και τις λεπτομέρειες σύνδεσης. Ελλείπουσα μονάδα, μη υποστηριζόμενο πρωτόκολλο ή ασύμβατη έκδοση Node μπορεί να προκαλέσει αποτυχία πριν το αίτημα φτάσει στο τελικό σημείο.
Για HTTP proxy με έλεγχο ταυτότητας, χρησιμοποιήστε το πεδίο auth του αντικειμένου proxy με τα διαπιστευτήρια του διαχειριστή. Οι ρυθμίσεις ελέγχου ταυτότητας του προορισμού αφορούν διαφορετικό μέρος.