Play Framework 2.1.1 HTTP 413触发器

时间:2013-08-14 09:10:09

标签: http playframework playframework-2.1

我遇到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。如何实现?

0 个答案:

没有答案