Node च्या Undici ने प्रॉक्सी IP वापरा
एका fetch विनंतीला Undici ProxyAgent द्या आणि जोडणी पूल इतर Node वाहतुकीपासून वेगळा ठेवा.
Undici विनंती dispatcher मधून पाठवते. निवडलेल्या HTTP प्रॉक्सीसाठी ProxyAgent बनवून संपूर्ण प्रोसेसचा ग्लोबल dispatcher बदलण्याऐवजी fetch कॉलला द्या.
npm install [email protected]
import { fetch, ProxyAgent } from 'undici';
const dispatcher = new ProxyAgent('http://203.0.113.10:8080');
try {
const response = await fetch('https://example.com/', {
dispatcher,
signal: AbortSignal.timeout(15000),
});
console.log(response.status);
console.log(await response.text());
} finally {
await dispatcher.close();
}
प्रोग्राम .mjs फाइल म्हणून जतन करा किंवा ES मॉड्यूल प्रकल्प वापरा. दस्तऐवजी IP च्या जागी HTTP प्रॉक्सी यादीतून HTTP प्रॉक्सी घ्या. इम्पोर्ट जाणीवपूर्वक Undici चे fetch वापरतो, त्यामुळे dispatcher पर्याय उदाहरणातील क्लायंटचा आहे.
IP ला दोष देण्याआधी Node सुसंगतता तपासा
Undici च्या समर्थित Node आवृत्त्या पॅकेज प्रकाशनावर अवलंबून आहेत. उदाहरण Undici 8.12.3 वापरते, ज्याला Node 22.19.0 किंवा नवे लागते. मॉड्यूल लोड किंवा इंजिन आवृत्तीची त्रुटी विनंती प्रॉक्सीला पोहोचण्याआधी होते. प्रत्येक Node नवीनतम Undici चालवतो असे मानू नका; इन्स्टॉल पॅकेजची गरज तपासा.
एक agent पुन्हा येणाऱ्या विनंत्या हाताळू शकतो
छोटा प्रोग्राम शेवटी dispatcher बंद करतो. चालू अनुप्रयोग एकाच एंडपॉइंटने अनेक विनंत्या पाठवत असल्यास agent त्या कामासाठी ठेवा आणि काम झाल्यावर बंद करा. प्रत्येक URL साठी agent बनवणे व बंद करणे उपयुक्त जोडणी पुनर्वापर थांबवते.
ग्लोबल dispatcher फक्त व्यापक बदल अभिप्रेत असताना योग्य आहे. स्पष्ट देण्यामुळे दुसऱ्या घटकाच्या बाहेर जाणाऱ्या विनंत्या न बदलता प्रॉक्सी IP तपासणे सोपे होते.
प्रतिसाद आणि अयशस्वी टप्पा पाहा
fetch प्रत्येक HTTP त्रुटी स्थितीला नाकारलेला Promise मानत नाही. 403 किंवा 429 प्रॉक्सीने आणलेला वेबसाइटचा खरा प्रतिसाद असू शकतो. जोडणी किंवा टनेल त्रुटी प्रतिसाद ऑब्जेक्ट बनण्याआधी विनंती नाकारू शकते. स्थिती आणि कॉलने फेकलेल्या त्रुटी वेगळ्या वाचा.
प्रमाणीकरण लागल्यास Undici चा ProxyAgent कन्स्ट्रक्टर पर्याय देतो. वेबसाइट विनंती हेडरमध्ये प्रॉक्सी अधिकृतता हेडर जोडू नका; agent वेगळा जोडणी भाग हाताळतो.