Chrome के "उन्नत रेस्ट क्लाइंट" का उपयोग करके REST API का परीक्षण कैसे करें


89

नीचे दिए गए लिंक पर दिए गए निर्देशों के बाद, मैंने सफलतापूर्वक अपने Django एप्लिकेशन के लिए REST API का निर्माण किया: http://django-rest-framework.org/tutorial/quickstart

मैं इसे यूनिक्स प्रांप्ट से निम्न करके परीक्षण कर सकता हूं:

curl -H 'Accept: application/json; indent=4' -u root:myPassword http://www.myWebsite.com/users/

यह काम करता हैं :)

हालाँकि, मैं इसी कार्यक्षमता का परीक्षण करने के लिए Chrome एक्सटेंशन एडवांस्ड रेस्ट क्लाइंट का उपयोग करना चाहूंगा। मैंने एक्सटेंशन स्थापित किया है, लेकिन मुझे नहीं पता कि खेतों को कहां / कैसे लगाया जाए। जब मैं अपना शिक्षित-अनुमान (जैसा कि आप स्क्रीनशॉट में देख सकते हैं) बनाते हैं, तो यह यह कहते हुए अस्वीकार कर देता है कि "प्रमाणीकरण प्रमाणिकता प्रदान नहीं की गई थी"

असफल अनुरोध का स्क्रीनशॉट

मुझे अपने पैरामीटर को REST API में कैसे / कहाँ निर्दिष्ट करना चाहिए?

जवाबों:


99

खोज क्षमता निराशाजनक है, लेकिन यह काफी चतुर है कि उन्नत रेस्ट क्लाइंट बुनियादी प्रमाणीकरण कैसे संभालता है। शॉर्टकट अब्राहम का उल्लेख मेरे लिए काम नहीं करता था, लेकिन चारों ओर एक छोटे से प्रहार से पता चलता है कि यह कैसे करता है।

पहली चीज जो आपको करने की ज़रूरत है वह Authorizationहैडर जोड़ना : मेनू

तब, जब आप valueइनपुट पर ध्यान केंद्रित करते हैं, तो एक निफ्टी छोटी चीज पॉप अप होती है (निचले दाईं ओर "निर्माण" बॉक्स पर ध्यान दें): सामान्य मान का निर्माण करें

इसे क्लिक करने पर एक बॉक्स आएगा। यह भी OAuth करता है, अगर आप चाहते हैं! सुविधाजनक जानकारी

टाडा! यदि आप "निर्माण" पर क्लिक करते समय मान फ़ील्ड को खाली छोड़ देते हैं, तो यह इसमें Basicभाग जोड़ देगा (मुझे लगता है कि यह आवश्यक OAuth सामान भी जोड़ देगा, लेकिन मैंने कोशिश नहीं की, क्योंकि मेरी मौजूदा ज़रूरतें बुनियादी थीं प्रमाणीकरण), इसलिए आपको कुछ भी करने की आवश्यकता नहीं है। आवश्यकतानुसार क्षेत्र में भरता है


- मूल प्रमाणीकरण के लिए youtube.com/watch?v=1SP1hgm9JqA । "हेडर फॉर्म" टैब में, एक हेडर जोड़ें "प्राधिकरण"। टाइप करना शुरू करते ही यह ऑटो-सुझाव देगा। मान में, संपादित करें (पेंसिल) बटन पर क्लिक करें और पॉप-अप में स्थिति क्रेडेंशियल टाइप करें।
उटसव

10

स्क्रीनशॉट से मैं देख सकता हूं कि आप सेवा में "उपयोगकर्ता" और "पासवर्ड" मान पास करना चाहते हैं। आपने अनुरोध हैडर भाग में पैरामीटर मान भेजे हैं जो गलत है। मान अनुरोध बॉडी में भेजे जाते हैं, न कि अनुरोध हैडर में। साथ ही आपका सिंटैक्स गलत है। सही सिंटैक्स है: {"user":"user_val","password":"password_val"}. यह भी जांचें कि सामग्री प्रकार क्या है। यह आपकी सेवा के लिए निर्धारित सामग्री प्रकार के साथ मेल खाना चाहिए।


7

यह एक बहुत पुराना प्रश्न लगता है, लेकिन मैं एक उत्तर प्रदान कर रहा हूं, ताकि यह दूसरों की मदद कर सके। आप फॉर्म स्क्रीन में दूसरी स्क्रीन में वैरिएबल को निर्दिष्ट कर सकते हैं, जैसा कि नीचे दिखाया गया है या रॉ फॉर्मेट में वैरिएबल को दूसरी इमेज में दिखाया गया है।

फॉर्म वेरिएबल्स निर्दिष्ट करें

रॉ प्रारूप में निर्दिष्ट करें

यदि आपके चर और चर मान मान्य हैं, तो आपको प्रतिक्रिया अनुभाग में एक सफल प्रतिक्रिया दिखनी चाहिए।


क्या होगा अगर यह एक GET अनुरोध है?
देजेल

मुझे सामग्री-प्रकार के हेडर को स्पष्ट रूप से सेट करना था, मान के साथ: आवेदन / x-www-form-urlencoded
shasi kanth

6

आमतौर पर बुनियादी स्थिति के लिए उपयोग किया जाने वाला शॉर्टकट प्रारूप है http://username:password@example.com/path। आप अनुरोध में स्वीकृत हेडर को भी शामिल करना चाहेंगे।

यहां छवि विवरण दर्ज करें


धन्यवाद। मुझे एक प्रतिक्रिया मिली जिसमें निम्नलिखित शामिल थे: <p> CSRF सत्यापन विफल। अनुरोध निरस्त हो गया। </ p> मैं उस एक के आसपास कैसे पहुंचूं?
साकिब अली

लगता है कि आप एक एपीआई समापन बिंदु नहीं मार रहे हैं, लेकिन इसके बजाय जावास्क्रिप्ट हिट करने के लिए एक समापन बिंदु मानसिक मार रहे हैं।
अब्राहम

यह आमतौर पर एक अच्छा समाधान है - जब तक कि आपके यूआईडी या पीडब्ल्यूडी में ":" या "@" प्रतीक शामिल नहीं हैं।
ब्लेमकिनरी

यदि आपके पास आरक्षित वर्ण हैं तो आपको उपयोगकर्ता नाम / पासवर्ड को एनकोड करना पड़ सकता है।
अब्राहम

मैं HTTPS पर GET कमांड के लिए आपके समाधान का उपयोग करने की कोशिश कर रहा था और यह काम नहीं कर रहा था। उदा उपयोगकर्ता: @ api.com / v2 / शिपमेंट यह कर्ल में काम करता है। गलत क्या है? कोई पासवर्ड नहीं है
Dejell

3

हैडर सेक्शन में आपको लिखना है

प्राधिकरण: मूल aG9sY67890vbGNpbQ ==

जहां मूल के बाद स्ट्रिंग आपके उपयोगकर्ता नाम का 64 बिट एन्कोडिंग मूल्य है: पासवर्ड। हेडर मान प्राप्त करने का php उदाहरण है: "ऑथराइजेशन: बेसिक"। base64_encode ( "MyUser: MyPassword");

nb: मैंने आपकी प्रमाणीकरण पद्धति को आधारभूत माना है। जो अलग भी हो सकता है।


यह प्रश्न विशेष रूप से क्रोम एक्सटेंशन एडवांस्ड रेस्ट क्लाइंट में इसे करने के तरीके के बारे में पूछता है।
शौना

Shauna का उत्तर सही था और उसे स्वीकृत उत्तर होना चाहिए, लेकिन जो भी Chrome उन्नत रेस्ट क्लाइंट ने आपके लिए उपयोगकर्ता और पासवर्ड को एनकोड करने के लिए किया है, यह जानने के लिए उत्सुक हैं, जो कि sharif की यह टिप्पणी उपयोगी है। धन्यवाद।
डेमोई

3

प्राधिकरण शीर्ष लेख जोड़ें और उपयोगकर्ता नाम और पासवर्ड दर्ज करने के लिए पेंसिल बटन पर क्लिक करें

यहां छवि विवरण दर्ज करें


0

इस प्रमाणीकरण समस्या से छुटकारा पाने का आसान तरीका यह है कि फिडलर का उपयोग करके प्रमाणीकरण टोकन चोरी कर लिया जाए।

कदम

  1. फ़िडलर और ब्राउज़र को फायर करें।
  2. वेब एप्लिकेशन (वेब ​​साइट) खोलने और आवश्यक प्रमाणीकरण करने के लिए ब्राउज़र को नेविगेट करें।
  3. Fiddler खोलें और HTTP 200 HTML पेज अनुरोध पर क्लिक करें। फ़िडलर का उपयोग करके कुकी मूल्य कैप्चर करना
  4. अनुरोध शीर्षलेखों से दाएँ फलक पर, कुकी शीर्ष लेख पैरामीटर मान कॉपी करें। यहां छवि विवरण दर्ज करें
  5. REST क्लाइंट खोलें और "Header form" टैब पर क्लिक करें और क्लिप बोर्ड से कुकी मान प्रदान करें।

SEND बटन पर क्लिक करें और यह परिणाम लाएगा।


0

प्रमाणीकरण के साथ GET अनुरोध के लिए नवीनतम एआरसी के साथ प्राधिकरण नाम के एक कच्चे हेडर को जोड़ने की आवश्यकता है: ऑर्टोटोकैन।

कृपया स्क्रीन शॉट खोजें प्रमाणीकरण और क्वेरी पैरामेट्स के साथ अनुरोध प्राप्त करें

क्वेरी परम जोड़ने के लिए URL बॉक्स के बाईं ओर ड्रॉप डाउन एरो पर क्लिक करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.