Το πρώτο URL μπορεί να είναι HTTPS και το URL μετά την ανακατεύθυνση HTTP. Επιλέξτε τον πράκτορα με βάση τον προορισμό κάθε αιτήματος, αντί να δέσετε έναν πράκτορα στο πρώτο URL.

Για το εισαγόμενο πακέτο node-fetch σε εφαρμογή ESM, δώστε μια συνάρτηση:

import fetch from 'node-fetch';
import { HttpProxyAgent } from 'http-proxy-agent';
import { HttpsProxyAgent } from 'https-proxy-agent';

const proxyUrl = 'http://proxy.example:8080';
const httpAgent = new HttpProxyAgent(proxyUrl);
const httpsAgent = new HttpsProxyAgent(proxyUrl);

const response = await fetch('https://api.example/', {
  agent: url => url.protocol === 'http:' ? httpAgent : httpsAgent,
});

Αντικαταστήστε το URL του API και το τελικό σημείο του διαμεσολαβητή. Για δημόσιο API που επιτρέπεται μέσω δημόσιου ενδιάμεσου, η λίστα διαμεσολαβητών HTTP παρέχει υποψηφίους για το proxyUrl. Οι δύο πράκτορες μπορούν να χρησιμοποιούν τον ίδιο ακροατή HTTP· τα ονόματά τους αναφέρονται στο αίτημα προς τον προορισμό.

URL που περνά στον επιλογέαΕπιλεγμένος πράκτορας
https://…httpsAgent
http://…httpAgent

Έτσι η συνάρτηση εξακολουθεί να επιλέγει τον σωστό πράκτορα αν μια ανακατεύθυνση αλλάξει το πρωτόκολλο του προορισμού. Το proxyUrl εξακολουθεί να περιγράφει τον ενδιάμεσο, ανεξάρτητα από αυτή την απόφαση.

Δημιουργήστε τους πράκτορες μία φορά για τον φόρτο εργασίας και επαναχρησιμοποιήστε τους. Χειριστείτε την κατάσταση που επιστρέφεται και καταναλώστε το σώμα της απόκρισης στον κώδικα κλήσης. Αυτή η διεπαφή πράκτορα ανήκει στο node-fetch· το ενσωματωμένο fetch του Node χρησιμοποιεί διαφορετική διεπαφή μεταφοράς.

Σχετικά άρθρα