Httpक्लाइंट का आधार पता: एक नज़दीकी नज़र
यह लेख HttpClient
की BaseAddress
संपत्ति के अक्सर गलत समझे जाने वाले व्यवहार को स्पष्ट करता है। आंशिक रूप से परिभाषित बेसएड्रेस
का उपयोग करके यूआरआई का निर्माण करते समय कई डेवलपर्स को अप्रत्याशित परिणाम का सामना करना पड़ता है। हम समस्या का विश्लेषण करेंगे और यह सुनिश्चित करने के लिए सही उपयोग प्रस्तुत करेंगे कि आपके GET
अनुरोध हमेशा इच्छित लक्ष्य तक पहुंचें।
समस्या: अप्रत्याशित यूआरआई निर्माण
BaseAddress
को "http://something.com/api" पर सेट करना और फिर GetAsync
में संबंधित URI के रूप में "/resource/7" का उपयोग करना ऐसा लग सकता है कि इसका परिणाम "http://something.com/api/resource/7" होना चाहिए। हालाँकि, यह आमतौर पर विफल रहता है। BaseAddress
("http://something.com/api/") में पिछला स्लैश जोड़ना भी सफलता की गारंटी नहीं देता है।
द मिसिंग पीस: डॉक्यूमेंटेशन एंड प्रैक्टिकल एप्लीकेशन
हालांकि आधिकारिक दस्तावेज में BaseAddress
को "वेब संसाधन का आधार पता" बताया गया है, लेकिन इसमें फॉरवर्ड स्लैश की महत्वपूर्ण भूमिका पर स्पष्ट मार्गदर्शन का अभाव है। प्रयोग से समाधान स्पष्ट हो जाता है:
BaseAddress
को एक अनुगामी फॉरवर्ड स्लैश (/) की आवश्यकता है।GetAsync
में सापेक्ष यूआरआई को नहीं एक अग्रणी फॉरवर्ड स्लैश (/) से शुरू करना चाहिए।सही कार्यान्वयन
निम्नलिखित कोड सफल संयोजन को दर्शाता है:
using (var handler = new HttpClientHandler())
using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://something.com/api/");
var response = await client.GetAsync("resource/7");
}
यह सही ढंग से "http://something.com/api/resource/7" को लक्षित करता है।
निष्कर्ष: विश्वसनीय HTTP अनुरोधों के लिए बेसएड्रेस में महारत हासिल करना
HttpClient
के BaseAddress
का प्रभावी उपयोग स्लैश प्लेसमेंट की सटीक समझ पर निर्भर करता है। ऊपर उल्लिखित दिशानिर्देशों का पालन करके - BaseAddress
में एक अनुगामी स्लैश और सापेक्ष यूआरआई में कोई अग्रणी स्लैश नहीं - डेवलपर्स अपने HTTP अनुरोधों में सुसंगत और पूर्वानुमानित व्यवहार सुनिश्चित कर सकते हैं। यह प्रतीत होता है कि मामूली विवरण महत्वपूर्ण डिबगिंग सिरदर्द को रोक सकता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3