Asp.net 将正文中的json数据发布到web api
我总是从身体得到空值为什么? 我用小提琴没问题,但邮递员不行 我有这样一个web api:Asp.net 将正文中的json数据发布到web api,asp.net,asp.net-web-api2,postman,Asp.net,Asp.net Web Api2,Postman,我总是从身体得到空值为什么? 我用小提琴没问题,但邮递员不行 我有这样一个web api: [Route("api/account/GetToken/")] [System.Web.Http.HttpPost] public HttpResponseBody GetToken([FromBody] string value) { string result = value; } 我的邮递员资料: 和标题: 您正在发布一个对象并试图将其绑
[Route("api/account/GetToken/")]
[System.Web.Http.HttpPost]
public HttpResponseBody GetToken([FromBody] string value)
{
string result = value;
}
我的邮递员资料:
和标题:
您正在发布一个对象并试图将其绑定到字符串。 而是创建一个类型来表示该数据:
public class Credentials
{
public string Username { get; set; }
public string Password { get; set; }
}
[Route("api/account/GetToken/")]
[System.Web.Http.HttpPost]
public HttpResponseBody GetToken([FromBody] Credentials value)
{
string result = value.Username;
}
WebAPI按预期工作,因为您告诉它您正在发送此json对象:
{ "username":"admin", "password":"admin" }
然后要求它将其反序列化为字符串
,这是不可能的,因为它不是有效的JSON字符串
解决方案1:
如果希望接收实际JSON,则值中的值将为:
value = "{ \"username\":\"admin\", \"password\":\"admin\" }"
然后,您需要在postman中将请求主体设置为以下字符串:
"{ \"username\":\"admin\", \"password\":\"admin\" }"
解决方案2(我假设这就是您想要的):
创建一个与JSON匹配的C#对象,以便WebAPI能够正确地对其进行反序列化
首先创建一个与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]字符串用户名,[FromBody]字符串密码)
?或者您希望value
包含整个json字符串?我希望以json字符串格式在正文中传递数据。我的代码中有什么问题?