मैं एक नया नोड POST कैसे करूं?


16

मैंने निम्नलिखित सहित कई लिंक का उल्लेख किया है:

मैंने एक Drupal साइट पर एक नया नोड POST करने के कई तरीके आज़माए, लेकिन मैं असफल रहा। मैंने नाम, आयु, लिंग, DOB के साथ छात्रों के डेटा को संग्रहीत करने के लिए एक नमूना CCK बनाया है, और कुछ सूची जोड़ी है।

मैंने सेवा मॉड्यूल (डी 7) को स्थापित और कॉन्फ़िगर किया है, और सेवाओं पर सेवा अंत बिंदु बनाया है।
उम्मीद के मुताबिक, GET JSON में नोड का विवरण प्राप्त करने का सबसे आसान तरीका है। http://localhost/drupal/services/nodeबस सभी नोड्स सूचीबद्ध।

मैं अभी भी यह पता नहीं लगा सकता कि POST विधि का उपयोग कैसे करें ।

  1. मैं उन छात्रों की खोज करना चाहूंगा जिनके नाम में जॉन है । मैंने कोशिश की localhost/drupal/services/node&node[name]=john। मैंने सफलता के बिना Chrome के लिए POST Man प्लगइन का उपयोग किया । मैंने कुछ और तरीके भी आजमाए।

  2. मैंने सफलता के बिना साइट पर एक नए छात्र को जोड़ने की कोशिश की।

क्या कोई मुझे उपरोक्त कार्य को ठीक करने के लिए मार्गदर्शन कर सकता है?

अपडेट करें :

मैंने टाइप आर्टिकल के नए नोड्स जोड़ने की कोशिश की । यह ठीक काम किया। लेकिन जब मैं प्रकार विभाग CCK के नोड्स जोड़ने की कोशिश कर रहा हूं तो यह " s: 22:" CSRF सत्यापन विफल " दिखा रहा है; " यहां स्क्रीन शॉट्स हैं

मैं लिंक https://drupal.org/node/2013781 से गुजरा हूं

मैंने सत्र = session_name = session_id का अनुसरण किया लेकिन मुझे अभी भी एक त्रुटि मिलती है।
यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें


क्या होता है जब आप एक नोड को पोस्ट करने की कोशिश करते हैं? क्या आपको एक त्रुटि संदेश मिलता है? यदि ऐसा है, तो ये क्या है?
गेलन

जवाबों:


22

आशा है कि यह आपकी मदद करेगा,

द्रुपाल 7 के लिए

उपकरणों का इस्तेमाल:

  • फ़ायरफ़ॉक्स पोस्टर ऐड-ऑन परीक्षण और डिबगिंग करने के लिए। अन्य ऐड-ऑन भी हो सकते हैं। लेकिन इस उदाहरण के लिए फ़ायरफ़ॉक्स ऐड-ऑन का उपयोग करके im।
  • JSON डेटा का उपयोग करने के लिए संपादन और मान्य करने में मदद करने के लिए
    • इस लिंक का उपयोग करके JSON डेटा संपादित करें
    • इस लिंक का उपयोग करके JSON डेटा सत्यापित करें

HTTP अनुरोध

  • HTTP अनुरोध करने के लिए, आपको फ़ायरफ़ॉक्स ऐड-ऑन POSTER का उपयोग करना होगा

  • क्लाइंट और सर्वर के बीच अनुरोध-प्रतिक्रिया के लिए आमतौर पर इस्तेमाल की जाने वाली दो विधियाँ हैं:

    • प्राप्त
    • पद
  • ऐड-ऑन डाउनलोड होने के बाद। फ़ायरफ़ॉक्स खोलें -> उपकरण -> पोस्टर

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

  • सत्र प्रमाणीकरण को सक्षम करना सुनिश्चित करें । सेवाओं को ठीक से कॉन्फ़िगर करने के बाद , नोड बनाने से पहले आपको लॉग-इन करना चाहिए । एक बार लॉग-इन करने के बाद आप नोड्स बना सकते हैं।

  • URL के साथ लॉगिन उपयोग POST विधि के लिए, जैसे - http://XXXXXXXX.com/demo/rulebook/rulebook_endpoint/user/login

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

  • यदि यह एक वैध उपयोगकर्ता है तो यह सत्र आईडी और नाम के साथ उपयोगकर्ता विवरण लौटाएगा । यदि मान्य नहीं है तो यह अस्वीकृत अस्वीकृत हो जाएगा

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

  • POST HEADER में सत्र नाम और आईडी का उपयोग करके, हम नए नोड्स बनाने में सक्षम हो सकते हैं

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

  • अब HEADER जोड़ने के बाद, आपको HTTP POST अनुरोध करने की जरूरत है और सुनिश्चित करें कि उपयोगकर्ता के पास नोड बनाने की अनुमति होनी चाहिए।

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

  • यदि नोड बनाया जाता है, तो आपको नोड लिंक के साथ प्रतिक्रिया मिलेगी

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

नोट: यदि आप JSON में प्रतिक्रिया चाहते हैं, तो आपको URL के अंत में हमेशा .json को जोड़ना चाहिए। जैसे।, http://XXXXXXXX.com/test/endpoint/user.json या http://XXXXXXXX.com/test/endpoint/node.json या http://XXXXXXXX.com/test/endpoint/user/user_id .जसन या http://XXXXXXXX.com/test/endpoint/node/node_id.json


क्षमा करें, मैंने सेवा मॉड्यूल में प्रपत्र url- एन्कोडेड विकल्प अनियंत्रित किया है। और यहां प्रतिक्रिया 401 है: अनधिकृत: सीएसआरएफ प्राधिकरण विफल। यह क्या कारण हो सकता है? बहुत धन्यवाद
रामराजू

hi @inizio मुझे पता हो सकता है कि आपने हेडर्स में सत्र मूल्य किस आधार पर दिया है। क्या आप इसे स्पष्ट कर सकते हैं। उदाहरण के लिए, मैं प्राप्त सत्र I SESS29af1facda0a866a687d5055f2fade2c है, लेकिन आपके उत्तर में इसकी लंबाई अधिक है!
रामराजू aj

HEADERS में सत्र मान सत्र_नाम और सत्र_ से मिलकर बनता है। यानी।, सत्र चर है और इसका मान सेशन_नाम = सेशन_ड से मिलकर बनता है। session = (session_name = session_value)
inizio

यह 401 कहता है: अनधिकृत: CSRF सत्यापन विफल। मैंने निम्नलिखित नाम हेडर के रूप में दिए = सत्र मूल्य = SESS29af1facda0a866a687d5055f2fade2c = gBVqtkN2ZNjDyOjIfp47oQpnmCKytcgHOCHZhKRzo
Ramaraju.d

हाँ, यह काम किया। लेकिन एकमात्र मुद्दा, द आर्टिकल CCK का शीर्षक है, field_names, body लेकिन केवल शीर्षक सहेजा जा रहा है और नोड बनाया गया है, लेकिन शरीर और नाम फ़ील्ड रिक्त हैं। इससे कैसे उबरें।
रामराजु।

7

Drupal 7 और Services के लिए 7.x-3.x

चरण 1:user.login अपने उपयोगकर्ता नाम और पासवर्ड के साथ संसाधन के लिए पोस्ट अनुरोध जारी करें।

यदि लॉगिन सफल होता है, तो आपको 4 गुणों के साथ एक प्रतिक्रिया ऑब्जेक्ट मिलेगा:

  • session_name
  • sessid
  • टोकन
  • उपयोगकर्ता (वस्तु)

गूगल क्रोम पोस्टमैन से स्क्रीनशॉट गूगल क्रोम पोस्टमैन से स्क्रीनशॉट

चरण 2:node 2 हेडर के साथ पोस्ट अनुरोध जारी करें

  • कुकी: [session_name] = [sessid]
  • एक्स-सीएसआरएफ-टोकन: [टोकन]

गूगल क्रोम पोस्टमैन से स्क्रीनशॉट गूगल क्रोम पोस्टमैन से स्क्रीनशॉट


मैंने उपयोगकर्ता की कोशिश की <endpoint> /user.login लेकिन इसके नहीं repsonse: prntscr.com/gru4y6 - निश्चित नहीं कि क्या गलत कर रहे हैं im।
पातोशी at パ

0

अगर आप POST को REST API में करते हैं तो आपको सब कुछ POST डेटा में डालना होगा , URL के लिए नहीं । में डाकिया आप प्रकार की तुलना में करने के लिए, पोस्ट करने के लिए अनुरोध सेट कर सकते हैं x-www-form-urlencodedऔर नीचे है कि आप अपने डेटा मान जोड़ सकते हैं। स्थिति, यूआईडी, भाषा, प्रकार, शीर्षक और फिर अतिरिक्त मान जोड़ना न भूलें । संसाधन URL केवल होना चाहिए HOST/REST_API_PATH/node


1
थोड़ा भ्रमित। ठीक है, आप मुझे बता सकते हैं कि एक नया लेख बनाने के लिए क्या पैरामीटर होना चाहिए? यदि आपको कोई आपत्ति नहीं है, तो आप एक उदाहरण या एक लिंक पोस्ट कर सकते हैं ताकि मुझे एक स्पष्ट अवधारणा मिल सके!
रामराजू।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.