एक संदेश हैंडलर एक ऐसा वर्ग है जो एक HTTP अनुरोध प्राप्त करता है और एक HTTP प्रतिक्रिया देता है। संदेश हैंडलर सार HttpMessageHandler वर्ग से प्राप्त होते हैं। संदेश हैंडलर हमें आने वाले अनुरोध को HttpControllerDispatcher तक पहुंचने से पहले संसाधित करने, संपादित करने या अस्वीकार करने का अवसर प्रदान करते हैं।
संदेश संचालकों को अनुरोध प्रसंस्करण पाइपलाइन में बहुत पहले निष्पादित किया जाता है, इसलिए वे वेब एपीआई में क्रॉस कटिंग चिंताओं को लागू करने के लिए एक बेहतरीन जगह हैं। MessageHandlers कुछ और नहीं बल्कि कक्षाओं की एक श्रृंखला है (यह सिस्टम परिभाषित या परिभाषित बायस हो सकता है) जो एक पाइपलाइन के माध्यम से HTTP अनुरोध और प्रतिक्रिया की प्रक्रिया के बगल में बैठता है।
उदाहरण के लिए, एक HTTP अनुरोध एक HTTP सर्वर पर आया है, अब अनुरोध हैंडलरए को भेज दिया जाएगा और हैंडलरए में इसे संसाधित करने के बाद, यह हैंडलरबी पर जा सकता है और इसी तरह। अब, यहाँ लाभ यह है कि हम अपनी व्यावसायिक आवश्यकताओं के आधार पर प्रत्येक हैंडलर के भीतर विशिष्ट कार्य कर सकते हैं।
ASP.NET वेब एपीआई फ्रेमवर्क में, दो प्रकार के संदेश हैंडलर उपलब्ध हैं। वे इस प्रकार हैं।
- सर्वर-साइड HTTP संदेश हैंडलर
- क्लाइंट-साइड HTTP संदेश हैंडलर
सर्वर-साइड संदेश हैंडलर
सर्वर साइड पर, वेब एपीआई पाइपलाइन कुछ अंतर्निहित संदेश हैंडलर का उपयोग करती है -
- एचटीपी सर्वर मेजबान से अनुरोध प्राप्त करता है।
- HttpRoutingDispatcher मार्ग के आधार पर अनुरोध भेजता है।
- HttpControllerDispatcher वेब एपीआई नियंत्रक को अनुरोध भेजता है।
हम कस्टम हैंडलर को पाइपलाइन में जोड़ सकते हैं। संदेश हैंडलर उन क्रॉसकटिंग चिंताओं के लिए अच्छे हैं जो HTTP संदेशों के स्तर पर संचालित होते हैं (नियंत्रक क्रियाओं के बजाय)। उदाहरण के लिए, एक संदेश हैंडलर हो सकता है -
- अनुरोध शीर्षलेख पढ़ें या संशोधित करें।
- प्रतिक्रियाओं में प्रतिक्रिया शीर्षलेख जोड़ें।
- नियंत्रक तक पहुंचने से पहले अनुरोधों की पुष्टि करें।
क्लाइंट-साइड HTTP संदेश हैंडलर
ग्राहक पक्ष पर, HttpClient वर्ग अनुरोधों को संसाधित करने के लिए एक संदेश हैंडलर का उपयोग करता है। डिफ़ॉल्ट हैंडलर HttpClientHandler है , जो नेटवर्क पर अनुरोध भेजता है और सर्वर से प्रतिक्रिया प्राप्त करता है। हम कस्टम संदेश हैंडलर को क्लाइंट पाइपलाइन में सम्मिलित कर सकते हैं।