वेबएपीआई है काम कर के रूप में उम्मीद, क्योंकि आप इसे कह रहे हैं कि आप इस json वस्तु भेज रहे हैं:
{ "username":"admin", "password":"admin" }
तो फिर तुम पूछ रहे हैं इसे string
के रूप में deserialize करने के लिए जो असंभव है क्योंकि यह एक वैध JSON स्ट्रिंग नहीं है।
समाधान 1:
आप value
के मूल्य में के रूप में वास्तविक JSON प्राप्त करने के लिए किया जाएगा चाहते हैं:
value = "{ \"username\":\"admin\", \"password\":\"admin\" }"
तो स्ट्रिंग आप में अनुरोध के शरीर निर्धारित करने की आवश्यकता डाकिया है:
"{ \"username\":\"admin\", \"password\":\"admin\" }"
समाधान 2 (मैं इस संभालने हूँ जो आप चाहते हैं):
एक सी # ऑब्जेक्ट बनाएं जो JSON से मेल खाता है ताकि WebAPI इसे ठीक से deserialize कर सके।
सबसे पहले एक वर्ग है कि आपके JSON से मेल खाता बनाने के लिए: का उपयोग इस तरीके में तो
public class Credentials
{
[JsonProperty("username")]
public string Username { get; set; }
[JsonProperty("password")]
public string Password { get; set; }
}
:
[Route("api/account/GetToken/")]
[System.Web.Http.HttpPost]
public HttpResponseBody GetToken([FromBody] Credentials credentials)
{
string username = credentials.Username;
string password = credentials.Password;
}
है 'होने की GetToken जरूरत नहीं है ([FromBody] स्ट्रिंग उपयोगकर्ता नाम, [ से बॉडी] स्ट्रिंग पासवर्ड) '? या आप पूरे जेसन स्ट्रिंग को रखने के लिए 'value' की उम्मीद करते हैं? – Andrei
मैं अपने डेटा को शरीर में जेसन स्ट्रिंग स्वरूपित के रूप में पास करना चाहता हूं। मेरे कोड में समस्या क्या है? – Mennan