Play Framework:返回400而不是415

时间:2013-10-06 03:00:12

标签: java rest playframework httprequest http-status-code-415

我正在使用Play创建RESTful服务。我希望Play拒绝任何未在请求标头中将媒体类型指定为JSON的请求。

教程有一个很好的例子。 http://www.playframework.com/documentation/2.0/JavaJsonRequests

阅读它所说的地方......

@BodyParser.Of(Json.class)
public static index sayHello() {
  String name = json.findPath("name").getTextValue();
  if(name == null) {
    return badRequest("Missing parameter [name]");
  } else {
    return ok("Hello " + name);
  }
}

注意:这样,对于非JSON请求,将自动返回400 HTTP响应。

为什么它返回HTTP错误400,错误请求,而不是HTTP错误415,不支持的媒体类型?

有没有办法改变这种行为?

1 个答案:

答案 0 :(得分:2)

您可以使用status(int,String)方法返回自定义HTTP响应:

return status(415, "The only supported content type is application/json");