WebAPI 正在按预期工作,因为您告诉它您正在发送此 json 对象:
{ "username":"admin", "password":"admin" }
然后你要求它将它反序列化为string
这是不可能的,因为它不是有效的 JSON 字符串。
解决方案一:
如果您想接收实际的 JSON,如值所示value
将:
value = "{ \"username\":\"admin\", \"password\":\"admin\" }"
那么您需要在邮递员中将请求正文设置为的字符串是:
"{ \"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;
}