【发布时间】:2017-12-01 19:10:29
【问题描述】:
我有一个 web api,我想验证传入的请求。
目前我的 web api 控制器中有这个:
public HttpResponseMessage GetSomething([FromBody]SomeObject request)
{
var test= request.Number;
//omit
}
public class SomeObject
{
[JsonProperty]
public double Number {get;set;}
}
目前,如果我发送一个请求并将 Number 设置为字符串或非双精度,则当请求到达服务器时,Number 只是设置为零。当请求进来时我应该如何验证请求,因为我不希望它在进来时为零?
【问题讨论】:
-
在这种情况下,您将向客户端发送 400 Bad Request http 状态响应。除非您收到请求,否则无法验证它,因此您无法阻止客户端尝试发送垃圾。
-
@Crowcoder 在服务器端,垃圾只是将 number 属性设置为零,但这会将其转换为有效请求。我无法检查数字零
-
如果
Number是一个可为空的 int (?) 你会得到 null 吗? -
@Crowcoder 是的,可以,谢谢你的想法
-
@DeVonte 您无需更改属性的类型即可使其正常工作。请看下面我的回答。
标签: c# json asp.net-web-api controller