我遇到Play问题! Framework 2.1.1
当向我的应用程序发送一个大的(100kb +)请求时(Play!2.1.1),我得到一个“413 Request Entity Too Large”,这很好,因为100kb的限制是默认的。
但是,如果我发送大约104kb(也许这个号码只适合我),我再次获得200 OK,但request().body()
为null,因此所有Form实体也是......
为什么我得到200 OK并且当它应该返回413时运行我的代码?
一个hack-ish修复可能是(在我的Global.java中扩展了GlobalSettings):
@Override
public Action onRequest(Request request, Method actionMethod) {
if(request.body().isMaxSizeExceeded()) {
return new Action.Simple() {
@Override
public Result call(Context arg0) throws Throwable {
return Action.status(413);
}
};
}
return super.onRequest(request, actionMethod);
}
编辑:以上代码会使所有(?)路由请求返回413。
如果是413,我更愿意返回JSON。如何实现?