मैं वेब सेवा के परीक्षण के लिए पोस्टमैन क्रोम एक्सटेंशन का उपयोग कर रहा हूं।
डेटा इनपुट के लिए तीन विकल्प उपलब्ध हैं।
मुझे लगता है कि raw
JSON भेजने के लिए है।
अन्य दो के बीच क्या अंतर है, form-data
और x-www-form-urlencoded
?
मैं वेब सेवा के परीक्षण के लिए पोस्टमैन क्रोम एक्सटेंशन का उपयोग कर रहा हूं।
डेटा इनपुट के लिए तीन विकल्प उपलब्ध हैं।
मुझे लगता है कि raw
JSON भेजने के लिए है।
अन्य दो के बीच क्या अंतर है, form-data
और x-www-form-urlencoded
?
जवाबों:
ये W3C द्वारा परिभाषित विभिन्न प्रकार की सामग्री हैं। यदि आप सरल पाठ / ASCII डेटा भेजना चाहते हैं, तो x-www-form-urlencoded काम करेगा। यह डिफ़ॉल्ट है।
लेकिन अगर आपको गैर-एएससीआईआई पाठ या बड़े बाइनरी डेटा भेजना है, तो फॉर्म-डेटा इसके लिए है।
यदि आप सादा पाठ या JSON या किसी अन्य प्रकार की स्ट्रिंग भेजना चाहते हैं तो आप रॉ का उपयोग कर सकते हैं । जैसा कि नाम से पता चलता है, पोस्टमैन आपके कच्चे स्ट्रिंग डेटा को भेजता है क्योंकि यह बिना संशोधनों के है। आपके द्वारा भेजे जा रहे डेटा का प्रकार ड्रॉप-डाउन से सामग्री-प्रकार हेडर का उपयोग करके सेट किया जा सकता है।
जब आप अनुरोध पर गैर-पाठीय डेटा संलग्न करना चाहते हैं, तो बाइनरी का उपयोग किया जा सकता है, उदाहरण के लिए एक वीडियो / ऑडियो फ़ाइल, चित्र, या कोई अन्य द्विआधारी फ़ाइल।
आगे पढ़ने के लिए इस लिंक का संदर्भ लें: HTML दस्तावेजों में प्रपत्र
यह बेहतर व्याख्या करता है: डाकिया डॉक्स
शरीर का अनुरोध करें
अनुरोधों का निर्माण करते समय, आप अनुरोध के मुख्य संपादक के साथ काम करेंगे। डाकिया आपको लगभग किसी भी प्रकार का HTTP अनुरोध भेजने देता है (यदि आप कुछ नहीं भेज सकते हैं, तो हमें बताएं!)। बॉडी एडिटर को 4 क्षेत्रों में विभाजित किया गया है और शरीर के प्रकार के आधार पर अलग-अलग नियंत्रण हैं।
फार्म डेटा
मल्टीपार्ट / फॉर्म-डेटा वह डिफ़ॉल्ट एन्कोडिंग है जो डेटा ट्रांसफर करने के लिए वेब फॉर्म का उपयोग करता है।यह एक वेबसाइट पर एक फॉर्म भरने और उसे सबमिट करने का अनुकरण करता है। प्रपत्र-डेटा संपादक आपको अपने डेटा के लिए कुंजी / मान जोड़े (कुंजी-मूल्य संपादक का उपयोग करके) सेट करने देता है। आप एक कुंजी के रूप में अच्छी तरह से फाइल संलग्न कर सकते हैं। ध्यान दें कि HTML5 कल्पना के प्रतिबंध के कारण, फ़ाइलें इतिहास या संग्रह में संग्रहीत नहीं हैं। अनुरोध भेजने के समय आपको फिर से फ़ाइल का चयन करना होगा।urlencoded
यह एन्कोडिंग URL पैरामीटर में उपयोग किए जाने वाले के समान है। आपको बस कुंजी / मूल्य जोड़े दर्ज करने की आवश्यकता है और पोस्टमैन चाबियाँ और मूल्यों को ठीक से एन्कोड करेगा। ध्यान दें कि आप इस एन्कोडिंग मोड के माध्यम से फाइल अपलोड नहीं कर सकते हैं। प्रपत्र-डेटा और urlencoded के बीच कुछ भ्रम हो सकता है इसलिए पहले अपने API से जांच करना सुनिश्चित करें।
कच्चा
एक कच्चे अनुरोध में कुछ भी हो सकता है। पोस्टमैन पर्यावरण चर की जगह को छोड़कर कच्चे संपादक में दर्ज स्ट्रिंग को नहीं छूता है। आप पाठ क्षेत्र में जो कुछ भी डालते हैं वह अनुरोध के साथ भेजा जाता है। कच्चा संपादक आपको सही शीर्ष लेख के साथ स्वरूपण प्रकार सेट करने देता है जिसे आपको कच्चे शरीर के साथ भेजना चाहिए। आप सामग्री-प्रकार हेडर को मैन्युअल रूप से भी सेट कर सकते हैं। आम तौर पर, आप XML या JSON डेटा यहां भेज रहे होंगे।
बाइनरी
बाइनरी डेटा आपको उन चीजों को भेजने की अनुमति देता है जिन्हें आप पोस्टमैन में दर्ज नहीं कर सकते हैं। उदाहरण के लिए, छवि, ऑडियो या वीडियो फ़ाइलें। आप पाठ फ़ाइलें भी भेज सकते हैं। जैसा कि फॉर्म-डेटा अनुभाग में पहले उल्लेख किया गया है, यदि आपको इतिहास या संग्रह के माध्यम से एक अनुरोध लोड हो रहा है, तो आपको एक फ़ाइल को फिर से लिखना होगा।
अपडेट करें
द्वारा उठाई बाहर के रूप में VKK , WHATWG कल्पना कहना urlencoded रूपों के लिए डिफ़ॉल्ट एन्कोडिंग प्रकार है।
इन विशेषताओं के लिए अमान्य मान डिफ़ॉल्ट अनुप्रयोग / x-www-form-urlencoded स्थिति है। Enctype विशेषता के लिए अनुपलब्ध मान डिफ़ॉल्ट अनुप्रयोग / x-www-form-urlencoded स्थिति भी है।
Content-Type: application/json
; और कच्चे डेटा {foo: bar}
को एक ही Content-Type: application/json
हेडर के साथ जसन के रूप में दर्ज किया गया ?
बहुखण्डीय / फार्म-डेटा
ध्यान दें। फ़ाइल अपलोड के बारे में अतिरिक्त जानकारी के लिए कृपया RFC2388 से परामर्श करें , जिसमें बैकवर्ड संगतता समस्याएं, "मल्टीपार्ट / फॉर्म-डेटा" और अन्य सामग्री प्रकार, प्रदर्शन मुद्दे आदि के बीच संबंध शामिल हैं।
प्रपत्रों के लिए सुरक्षा समस्याओं के बारे में जानकारी के लिए कृपया परिशिष्ट से परामर्श करें।
सामग्री प्रकार "अनुप्रयोग / x-www-form-urlencoded" बाइनरी डेटा या गैर-ASCII वर्णों वाले पाठ को बड़ी मात्रा में भेजने के लिए अक्षम है। सामग्री प्रकार "मल्टीपार्ट / फॉर्म-डेटा" का उपयोग उन प्रपत्रों को प्रस्तुत करने के लिए किया जाना चाहिए जिनमें फाइलें, गैर-एएससीआईआई डेटा और बाइनरी डेटा शामिल हैं।
सामग्री प्रकार "मल्टीपार्ट / फॉर्म-डेटा" RFC2045 में उल्लिखित सभी मल्टीमार्ट MIME डेटा धाराओं के नियमों का पालन करता है । "मल्टीआर्ट / फॉर्म-डेटा" की परिभाषा [IANA] रजिस्ट्री पर उपलब्ध है।
"मल्टीपार्ट / फॉर्म-डेटा" संदेश में भागों की एक श्रृंखला होती है, प्रत्येक एक सफल नियंत्रण का प्रतिनिधित्व करता है। भागों को प्रसंस्करण एजेंट को उसी क्रम में भेजा जाता है, जो दस्तावेज़ स्ट्रीम में संबंधित नियंत्रण दिखाई देते हैं। किसी भी डेटा में भाग की सीमाएं नहीं होनी चाहिए; यह कैसे किया जाता है यह इस विनिर्देश के दायरे से बाहर है।
सभी प्रकार के MIME प्रकारों के साथ, प्रत्येक भाग में एक वैकल्पिक "सामग्री-प्रकार" शीर्षलेख होता है जो "पाठ / सादे" के लिए डिफ़ॉल्ट होता है। उपयोगकर्ता एजेंटों को "सामग्री" टाइप करें हेडर, एक "चारसेट" पैरामीटर के साथ आपूर्ति करना चाहिए।
आवेदन / x-www फार्म-urlencoded
यह डिफ़ॉल्ट सामग्री प्रकार है। इस सामग्री प्रकार के साथ जमा किए गए प्रपत्र निम्नानुसार एन्कोड किए जाने चाहिए:
नियंत्रण नाम और मूल्य बच जाते हैं। अंतरिक्ष वर्णों को +', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by
% HH ' द्वारा प्रतिस्थापित किया जाता है , एक प्रतिशत चिह्न और वर्ण के ASCII कोड का प्रतिनिधित्व करने वाले दो हेक्साडेसिमल अंक। लाइन ब्रेक को "सीआर एलएफ" जोड़े (यानी, %0D%0A').
The control names/values are listed in the order they appear in the document. The name is separated from the value by
= 'और नाम / मूल्य जोड़े को' और 'द्वारा एक दूसरे से अलग किया जाता है।
application/x-www-form-urlencoded
सर्वर पर भेजे गए HTTP संदेश का शरीर अनिवार्य रूप से एक विशाल क्वेरी स्ट्रिंग है - नाम / मान जोड़े एम्परसेंड (&) द्वारा अलग किए जाते हैं, और नाम मान प्रतीक (=) द्वारा मानों से अलग किए जाते हैं। इसका एक उदाहरण होगा:
MyVariableOne=ValueOne&MyVariableTwo=ValueTwo
सामग्री प्रकार "अनुप्रयोग / x-www फार्म-urlencoded" बाइनरी डेटा या पाठ गैर- ASCII वर्ण युक्त की बड़ी मात्रा में भेजने के लिए अक्षम है। सामग्री प्रकार "मल्टीपार्ट / फॉर्म-डेटा" का उपयोग उन प्रपत्रों को प्रस्तुत करने के लिए किया जाना चाहिए जिनमें फाइलें, गैर-एएससीआईआई डेटा और बाइनरी डेटा शामिल हैं।
अनुरोध में पोस्टमैन द्वारा पास किए गए कच्चे पाठ को देखने के लिए कुछ पूरक उदाहरण दिए गए हैं। आप इसे पोस्टमैन कंसोल को खोलकर देख सकते हैं:
हैडर
content-type: multipart/form-data; boundary=--------------------------590299136414163472038474
तन
key1=value1key2=value2
हैडर
Content-Type: application/x-www-form-urlencoded
तन
key1=value1&key2=value2
हैडर
Content-Type: text/plain
तन
This is some text.
हैडर
Content-Type: application/json
तन
{"key1":"value1","key2":"value2"}
binary
।