मैं एपीआई का उपयोग कर उच्च वृद्धि में एक व्यक्ति बनाने की कोशिश कर रहा हूँ। मुझे प्रतिक्रिया में "प्रथम नाम गुम है। संपर्कों का एक नाम होना चाहिए" त्रुटि संदेश मिल रहा है।

यहाँ मेरा कोड है:

let x = """<?xml version="1.0" encoding="UTF-8"?>
<person>
  <first-name>name</first-name>
  <last-name>last</last-name>
  <contact-data>
    <email-addresses type="array">
      <email-address>
        <address>someEmail@gmail.com</address>
      </email-address>
    </email-addresses>
  </contact-data>
  <tags type="array">
    <tag>
      <id type="integer">6154219</id>
      <name>sometag</name>
    </tag>
  </tags>
</person>"""

let req = new RestRequest("/people.xml", Method.POST)
req.AddParameter("Content-Type", "application/xml")
req.AddParameter("application/xml", x, ParameterType.RequestBody)
let res = client.Execute(req) 

प्रतिक्रिया एक 422 स्थिति कोड देता है। मुझे यकीन नहीं है कि मैं यहाँ क्या गलत कर रहा हूँ?

0
Kafo 4 अक्टूबर 2018, 20:26

3 जवाब

सबसे बढ़िया उत्तर

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

0
Kafo 8 नवम्बर 2018, 00:43

एक के आधार पर i">समान StackOverflow प्रश्न, ऐसा लगता है कि आपके अनुरोध में कुछ और गलत होने पर आपको यह त्रुटि मिल सकती है, जैसे कि जब इसमें उपयुक्त Content-Type मौजूद न हो।

मैं एक निश्चित उत्तर देने के लिए हाईराइज या रेस्टशर्प से परिचित नहीं हूं, लेकिन ऐसा लगता है कि अनुरोध बनाने के तरीके में कुछ गड़बड़ हो सकती है। बस आपका कोड पढ़ने से, मुझे शरीर को कुछ अप्रत्याशित जोड़ने के लिए AddParameter का उपयोग मिलता है (भले ही यह सही हो)। ऐसा लगता है कि आप इसके बजाय AddBody का उपयोग करने में सक्षम हो सकते हैं, इसलिए मैं कोशिश करूंगा।

(यह एक उचित उत्तर की तुलना में अधिक टिप्पणी है, लेकिन इसे टिप्पणी के रूप में पोस्ट करने में बहुत लंबा समय लगा!)

1
Tomas Petricek 5 अक्टूबर 2018, 03:24

मेरा मानना ​​है कि यह उपयोगकर्ता बनाते समय टैग जोड़ने के प्रयास का परिणाम है। यह एपीआई से बिल्कुल स्पष्ट नहीं है लेकिन कम से कम मेरे अनुभव में किसी कंपनी/व्यक्ति के साथ टैग फ़ील्ड का कोई फॉर्मूलेशन सबमिट नहीं किया जा सकता है और सफल हो सकता है।

वैकल्पिक रूप से, और मैं f# नहीं बोलता, इसलिए मुझे यकीन नहीं हो रहा है, लेकिन "सामग्री-प्रकार" हेडर में होना चाहिए। क्या आप जिस पैरामीटर घटक का उपयोग कर रहे हैं वह स्पष्ट रूप से हेडर के रूप में जोड़ता है?

हेडर काम करने से पहले लापता नाम फ़ील्ड मेरे लिए दिखा।

1
Joshua Rowlison 25 अक्टूबर 2018, 23:56