রিডাইরেক্টের পর 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 ভিন্ন ট্রান্সপোর্ট ইন্টারফেস ব্যবহার করে।