Men*_*nan 7 asp.net asp.net-web-api2 postman
我总是得到身体的空值为什么?使用fiddler我没有问题但邮递员失败了.
我有这样的网络API:
[Route("api/account/GetToken/")]
[System.Web.Http.HttpPost]
public HttpResponseBody GetToken([FromBody] string value)
{
string result = value;
}
Run Code Online (Sandbox Code Playgroud)
WebAPI按预期工作,因为您告诉它您正在发送此json对象:
{ "username":"admin", "password":"admin" }
Run Code Online (Sandbox Code Playgroud)
然后你要求它将其反序列化为一个string
不可能的,因为它不是一个有效的JSON字符串.
解决方案1:
如果你想接收实际的JSON,那么值value
将是:
value = "{ \"username\":\"admin\", \"password\":\"admin\" }"
Run Code Online (Sandbox Code Playgroud)
那么你需要在邮递员中设置请求主体的字符串是:
"{ \"username\":\"admin\", \"password\":\"admin\" }"
Run Code Online (Sandbox Code Playgroud)
解决方案2(我假设这是你想要的):
创建一个与JSON匹配的C#对象,以便WebAPI可以正确地反序列化它.
首先创建一个与您的JSON匹配的类:
public class Credentials
{
[JsonProperty("username")]
public string Username { get; set; }
[JsonProperty("password")]
public string Password { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在你的方法中使用这个:
[Route("api/account/GetToken/")]
[System.Web.Http.HttpPost]
public HttpResponseBody GetToken([FromBody] Credentials credentials)
{
string username = credentials.Username;
string password = credentials.Password;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
25145 次 |
最近记录: |