Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

Asp.Net webAPI C# में सामग्री बातचीत क्या है?

सामग्री बातचीत किसी दिए गए प्रतिक्रिया के लिए सबसे अच्छा प्रतिनिधित्व चुनने की प्रक्रिया है जब कई प्रतिनिधित्व उपलब्ध होते हैं। मतलब, अनुरोध में हेडर मान को स्वीकार करने के आधार पर, सर्वर प्रतिक्रिया भेजता है। HTTP में सामग्री वार्ता के लिए प्राथमिक तंत्र ये अनुरोध शीर्षलेख हैं -

स्वीकार करें - प्रतिक्रिया के लिए कौन से मीडिया प्रकार स्वीकार्य हैं, जैसे "एप्लिकेशन/जेसन," "एप्लिकेशन/एक्सएमएल," या एक कस्टम मीडिया प्रकार जैसे "एप्लिकेशन/vnd.example+xml"

स्वीकार करें-वर्णसेट - कौन से वर्ण सेट स्वीकार्य हैं, जैसे UTF-8 या ISO 8859-1।

स्वीकार-एन्कोडिंग - कौन सी सामग्री एन्कोडिंग स्वीकार्य है, जैसे कि gzip।

स्वीकार-भाषा - पसंदीदा प्राकृतिक भाषा, जैसे "एन-यूएस"।

सर्वर HTTP अनुरोध के अन्य भागों को भी देख सकता है। उदाहरण के लिए, यदि अनुरोध में एक एक्स-अनुरोधित-साथ शीर्षलेख है, जो एक AJAX अनुरोध को इंगित करता है, तो सर्वर JSON के लिए डिफ़ॉल्ट हो सकता है यदि कोई स्वीकृति शीर्षलेख नहीं है।

सामग्री बातचीत में, पाइपलाइन को HttpConfiguration ऑब्जेक्ट से IContentNegotiator सेवा मिलती है। इसे HttpConfiguration.Formatters संग्रह से मीडिया फॉर्मेटर्स की सूची भी मिलती है।

इसके बाद, पाइपलाइन IContentNegotiator.Negotiate को कॉल करती है, −

. में गुजरती है
  • क्रमबद्ध करने के लिए वस्तु का प्रकार
  • मीडिया फॉर्मेटर्स का संग्रह
  • HTTP अनुरोध

नेगोशिएट विधि जानकारी के दो टुकड़े लौटाती है -

  • कौन सा फॉर्मेटर इस्तेमाल करना है
  • प्रतिक्रिया के लिए मीडिया प्रकार

यदि कोई फ़ॉर्मेटर नहीं मिलता है, तो निगोशिएट विधि शून्य हो जाती है, और क्लाइंट को HTTP त्रुटि 406 (स्वीकार्य नहीं) प्राप्त होती है।

आइए हम नीचे की तरह स्टूडेंटकंट्रोलर पर विचार करें।

using DemoWebApplication.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace DemoWebApplication.Controllers{
   public class StudentController : ApiController{
      List<Student> students = new List<Student>{
         new Student{
            Id = 1,
            Name = "Mark"
         },
         new Student{
            Id = 2,
            Name = "John"
         }
      };
   }
}

RESTful सेवा के मानकों में से एक यह है कि, क्लाइंट के पास यह तय करने की क्षमता होनी चाहिए कि वे किस प्रारूप में प्रतिक्रिया चाहते हैं - XML, JSON आदि। सर्वर को भेजे जाने वाले अनुरोध में एक स्वीकृति शीर्षलेख शामिल है। स्वीकृति शीर्षलेख का उपयोग करके ग्राहक प्रतिक्रिया के प्रारूप को निर्दिष्ट कर सकता है। उदाहरण के लिए

Accept: application/xml returns XML
Accept: application/json returns JSON

नीचे दिए गए आउटपुट से पता चलता है कि प्रतिक्रिया एक्सएमएल की है जब हम एक्सेप्ट हैडर को एप्लिकेशन/एक्सएमएल के रूप में पास करते हैं।

Asp.Net webAPI C# में सामग्री बातचीत क्या है?

नीचे दिए गए आउटपुट से पता चलता है कि प्रतिक्रिया JSON की है जब हम एक्सेप्ट हैडर को एप्लिकेशन/JSON के रूप में पास करते हैं।

Asp.Net webAPI C# में सामग्री बातचीत क्या है?

जब ग्राहक को अनुरोधित प्रारूप में प्रतिक्रिया भेजी जा रही है, तो ध्यान दें कि प्रतिक्रिया का सामग्री-प्रकार शीर्षलेख उचित मान पर सेट है। उदाहरण के लिए, यदि क्लाइंट ने एप्लिकेशन/एक्सएमएल का अनुरोध किया है, तो सर्वर एक्सएमएल प्रारूप में डेटा भेजता है और सामग्री-प्रकार =एप्लिकेशन/एक्सएमएल भी सेट करता है।

Asp.Net webAPI C# में सामग्री बातचीत क्या है?

हम गुणवत्ता कारक भी निर्दिष्ट कर सकते हैं। नीचे दिए गए उदाहरण में, xml में json की तुलना में उच्च गुणवत्ता कारक है, इसलिए सर्वर XML फॉर्मेटर का उपयोग करता है और डेटा को XML.application/xml;q=0.8,application/json;q=0.5

में प्रारूपित करता है।

Asp.Net webAPI C# में सामग्री बातचीत क्या है?


  1. C# ASP.NET WebAPI में विभिन्न प्रकार के फ़िल्टर क्या हैं?

    वेबएपी फ्रेमवर्क अनुरोध प्रसंस्करण के विभिन्न स्तरों पर अतिरिक्त तर्क को इंजेक्ट करने के लिए फिल्टर का उपयोग किया जाता है। फ़िल्टर क्रॉस-कटिंग चिंताओं (लॉगिंग, प्राधिकरण और कैशिंग) के लिए एक रास्ता प्रदान करते हैं। एक घोषणात्मक या प्रोग्रामेटिक तरीके से एक क्रिया विधि या नियंत्रक पर फ़िल्टर लागू किए

  1. C# ASP.NET WebAPI में CORS समस्या को कैसे हल करें?

    क्रॉस-ओरिजिनल रिसोर्स शेयरिंग (सीओआरएस) एक ऐसा तंत्र है जो ब्राउज़र को एक मूल पर चलने वाले वेब एप्लिकेशन को एक अलग मूल से चयनित संसाधनों तक पहुंच देने के लिए अतिरिक्त HTTP शीर्षलेखों का उपयोग करता है। एक वेब एप्लिकेशन एक क्रॉस-ओरिजिनल HTTP अनुरोध को तब निष्पादित करता है जब वह ऐसे संसाधन का अनुरोध कर

  1. C# ASP.NET WebAPI में कंट्रोलर एक्शन के विभिन्न रिटर्न प्रकार क्या हैं?

    वेब एपीआई क्रिया विधि में निम्नलिखित रिटर्न प्रकार हो सकते हैं। शून्य आदिम प्रकार/जटिल प्रकार HttpResponseMessage IHttpActionResult शून्य - यह आवश्यक नहीं है कि सभी क्रिया विधियों को कुछ वापस करना होगा। इसमें शून्य वापसी प्रकार हो सकता है। उदाहरण using DemoWebApplication.Models using