2012-08-15 282 views
29

对于某些资源,我的REST风格的服务器只接受PUTPOST请求使用JSON对象作为内容主体,因此要求application/json,而不是application/x-www-form-urlencodedmultipart/form-data或任何其他的Content-TypeHTTP状态代码

格式错误的JSON(或缺少)会返回400,错误消息直接来自JSON解析器引发的异常,用于调试目的。

哪个HTTP错误代码意味着客户端发送了一个不可接受的请求Content-Type,即使服务器在技术上可以解析请求内容?

+1

在这里看到一个明确的答案: http://stackoverflow.com/questions/19417553/what-if-any-http-status-code-is-returned-when-a-mime-type-是否丢失 – 2013-10-23 03:33:33

回答

42

根据此列表可能是415 Unsupported Media Typehttp://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16

+0

我仍然想知道“未经接受的内容类型”和“不支持的媒体类型”之间是否存在差异 - 实际内容(可能与声明内容不同)与预期内容不匹配。 – blackstrype 2014-11-17 17:55:56

+0

415是正确的,但你不应该使用RFC 2616;它已被RFC 7231废弃。 – 2015-05-06 16:25:16

+11

'415不支持的媒体类型'意味着客户端以*服务器不支持的格式*提供*数据(如请求的'Content-Type'标头所示)。例如,尝试使用'application/xml'格式的资源来创建'POST'请求来创建'User'类型的记录,但服务器无法处理该资源类型的XML请求。 “406不可接受”表示传入的请求需要服务器无法提供的特定格式的响应数据(如“Accept”标头所示)(例如,当服务器只提供JSON时需要记录为XML )。 – Anthony 2016-04-24 23:03:13