假设您在 Python/Flask 中有一个 REST 服务,它采用以下请求正文:
{'date': '2015-01-01'}
您的消费者发送了以下错误请求:
{'date': '01/01/2015'}.
您的 API 无法解析它,并且您已经捕获了错误并且知道用户以错误的格式发送了日期。您响应哪个 HTTP 错误代码?
我一直在使用HTTP Code 400:
由于语法错误,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。
我告诉我的消费者,如果他看到 400,他不应该尝试重新发送请求,因为它需要先更改。
但是,我的消费者一直报告说,我的网络服务器有时会返回一个带有以下 HTML 的 400 错误:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>400 Bad Request</title>
<h1>Bad Request</h1>
<p>The browser (or proxy) sent a request that this server could not understand.</p>
有时我的用户会收到此错误消息,即使是有效请求,我仍然无法弄清楚。现在我想知道我对 400 的使用是否不正确。值得注意的是,他不能单独使用 HTTP 代码来告诉他是否应该重新发送。