Play で問題が発生しています。Framework 2.1.1
アプリケーション (Play! 2.1.1) に大きな (100kb+) リクエストを送信すると、「413 Request Entity Too Large」というメッセージが表示されますが、これは 100kb の制限がデフォルトであるため問題ありません。
ただし、約104kbを送信すると(おそらくこの数は私だけのものです)、再び200 OKを取得しますが、request().body()
nullとしてすべてのフォームエンティティも...
413 を返す必要があるのに、200 OK を取得してコードを実行するのはなぜですか?
ハックっぽい修正は次のとおりです(GlobalSettingsを拡張する私のGlobal.java内):
@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 を返したいのですが、どうすれば実現できますか?