1
我有以下服务方法,在给出以下宁静url时调用http://xxxxxxxxx/api/checkemail?email={email}
如果电子邮件的长度超过254个字符,则我想要抛出一个参数超出范围的异常,这可以正常工作,并覆盖不起作用的http响应状态码。HttpResponse在设置为自定义值之后返回状态代码400
当我在fiddler中执行url而不是返回状态码94043(我想使用的一个随机数)时,它返回了400个错误的请求。任何想法为什么?
public bool CheckIfUserExists(string email)
{
if (email.Length > 254)
{
HttpContext.Current.Response.StatusCode = 94043;
HttpContext.Current.Response.Status = "The email exceeds the maximum character limit";
throw new ArgumentOutOfRangeException("Email", "The email address is greater than 254 characters");
}
return CheckIfUserExists(email);
}
它可能不会让你因为你不应该发明你自己的状态代码而不是Http规范的一部分,我猜这个框架会强制执行它。一般来说,4xx意味着某种用户错误,因此您应该返回400个错误请求或其他4xx错误代码 – Ben