2013-03-11 14 views
17

पर डेटा पोस्ट करना मैं नई एएसपी.नेट वेब एपीआई को समझने की कोशिश कर रहा हूं।एएसपीनेट वेब एपीआई

अब तक मैं एक वैध प्रतिक्रिया इस विधि हस्ताक्षर बना सकते हैं और तब भी वह अच्छे से कनेक्ट और प्राप्त करने में सक्षम किया गया है ...

[HttpPost] 
public HttpResponseMessage CreateAccount() 

मैं Fiddler के साथ इस पद्धति के लिए एक अनुरोध भेजने के लिए कर रहा हूँ और सत्यापित किया है कि यह अनुरोध प्राप्त हो रहा है।

हालांकि, जब मैं डेटा पास करने का प्रयास करता हूं तो जब मैं किसी समस्या में भाग ले रहा हूं।

पहली बात मैंने कोशिश की थी ...

[HttpPost] 
public HttpResponseMessage CreateAccount([FromBody]string email, [FromBody]string password) 

और मैं

ईमेल लिखें: Fiddler में अनुरोध के शरीर में एबीसी

: xyz, पासवर्ड। जब मैं ऐसा करता हूं तो मुझे

बताते हुए 500 त्रुटि मिलती है 'अनुरोध की सामग्री में एकाधिक पैरामीटर (' ईमेल 'और' पासवर्ड ') को बाध्य नहीं कर सकता।'

मैं भी एक विधि हस्ताक्षर के रूप में यह कोशिश की है ...

[HttpPost] 
public HttpResponseMessage CreateAccount([FromBody]UserAccountRequestData data) 
UserAccountRequestData एक सरल POCO

public class UserAccountRequestData 
{ 
    public string Email { get; set; } 
    public string Password { get; set; } 
} 

किया जा रहा है और मैं

डाल

{ईमेल के साथ

: xyz, पासवर्ड : एबीसी}

या

डेटा: {ईमेल: xyz, पासवर्ड: abc}

अनुरोध के शरीर में। पीओसीओ को पॉप्युलेट करने की कोशिश कर रहे दोनों मामलों में मैं डीबगिंग करते समय विधि तक पहुंचने में सक्षम हूं, लेकिन डेटा ऑब्जेक्ट हमेशा शून्य है।

मुझे यह समझने की आवश्यकता है कि एपीआई विधियों को कैसे बनाया जाए जो दृढ़ता से टाइप किए गए पीओसीओ और अन्य दोनों को स्वीकार करते हैं जो तारों और स्याही जैसे कई आदिम प्रकार स्वीकार करते हैं।

धन्यवाद

उत्तर

17

आप application/json को Content-Type हेडर स्थापित करने के लिए और उसके बाद मान्य JSON प्रदान की जरूरत है।

{"Email":"xyz","Password":"abc"} 
+2

+1 डैरल मिलर उत्तर के लिए +1। इसके अलावा आप [जेएसओएन ऑब्जेक्ट को वेब एपीआई भेजना] के लिए दिए गए उत्तर का संदर्भ ले सकते हैं (http://stackoverflow.com/questions/13870161/sending-json-object-to-web-api)। यह आपको आपके प्रश्न के लिए नमूना कोड देता है। –

संबंधित मुद्दे