无效 POST 参数的错误代码
Posted
技术标签:
【中文标题】无效 POST 参数的错误代码【英文标题】:Error code for an invalid POST parameter 【发布时间】:2011-10-20 10:52:04 【问题描述】:POST 时返回的正确错误代码是什么 请求的参数无效?说:表单需要数据 对于一个事件,但提供的日期是过去的;或一个 表单获取用户注册的数据,但提供的名称 是数字或任何无效的人名。
【问题讨论】:
REST response code for invalid data的可能重复 【参考方案1】:11.2。 422 无法处理的实体
422(不可处理实体)状态码表示服务器 了解请求实体的内容类型(因此 a 415(不支持的媒体类型)状态码不合适), 请求实体的语法正确(因此为 400(错误请求) 状态码不合适)但无法处理包含的 指示。例如,如果 XML 请求正文包含格式正确(即语法正确),但 语义错误的 XML 指令。
(来自RFC 4918)
【讨论】:
【参考方案2】:我个人会选择:400 Bad Request
错误应该在代表客户端错误的 4xx 范围内,因为传输有效数据是客户端的责任。
无论如何,您可以查看list of standard HTTP response codes 并选择一个似乎适合您的需求。
【讨论】:
400 不是为语法错误而保留的吗?无效参数可能无效但语法正确。 rfc 说:“由于语法错误,服务器无法理解请求”,但是发送数字而不是日期是一种错误的语法,尽管客户端可以发送请求。具体来说,查询参数可以被认为是请求的一部分,因此会触发一些错误。错误“409 冲突”就是一个很好的例子。 发送数字而不是日期是错误的语法,但发送无效日期代替日期则不是。那我应该用什么? 我们已尝试在 httpbis 中澄清这一点,请参阅 svn.tools.ietf.org/svn/wg/httpbis/draft-ietf-httpbis/latest/…以上是关于无效 POST 参数的错误代码的主要内容,如果未能解决你的问题,请参考以下文章
facebook 发送 API 错误代码:100 API 错误描述:无效参数错误消息:“链接”无效
错误代码:12114 无效的项目 URL。由于参数无效,交易被拒绝
参数中带有 IEnumerable 的 C# OData Web API POST 端点返回错误 400,输入无效