მიეცით node-fetch-ს საშუალება, გადამისამართების შემდეგ თავად აირჩიოს პროქსი აგენტი
გამოიყენეთ აგენტის ფუნქცია HTTP და HTTPS დანიშნულებისთვის, რათა გადამისამართებამ შეძლოს შესაბამისი პროქსი აგენტის არჩევა.
პირველი URL შეიძლება იყოს HTTPS, ხოლო გადამისამართებული URL — HTTP. აირჩიეთ აგენტი თითოეული მოთხოვნის დანიშნულების მიხედვით, ნაცვლად იმისა, რომ ერთი აგენტი პირველ URL-ს მიაბათ.
ESM აპლიკაციაში იმპორტირებული node-fetch პაკეტისთვის მიაწოდეთ ფუნქცია:
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,
});შეცვალეთ API-ის URL და პროქსის საბოლოო წერტილი. საჯარო შუამავლის მეშვეობით დაშვებული საჯარო API-ისთვის HTTP პროქსების სია გვაწვდის კანდიდატებს proxyUrl-ისთვის. ორივე აგენტს შეუძლია გამოიყენოს ერთი და იგივე HTTP პროქსის მსმენელი; მათი სახელები დანიშნულების მოთხოვნას მიუთითებს.
| სელექტორზე გადაცემული URL | არჩეული აგენტი |
|---|---|
| https://… | httpsAgent |
| http://… | httpAgent |
ამიტომ ფუნქცია მაინც ირჩევს შესაბამის აგენტს, თუ გადამისამართება დანიშნულების პროტოკოლს შეცვლის. proxyUrl კვლავ აღწერს შუამავალს, ამ გადაწყვეტილებისგან დამოუკიდებლად.
შექმენით აგენტები ერთხელ დატვირთვისთვის და ხელახლა გამოიყენეთ. დაამუშავეთ დაბრუნებული სტატუსი და წაიკითხეთ პასუხის სხეული გამომძახებელ კოდში. ეს აგენტის ინტერფეისი node-fetch-ს ეკუთვნის; Node-ის ჩაშენებული fetch სხვა ტრანსპორტის ინტერფეისს იყენებს.