2017-06-06 27 views

回答

0

this answer描述,您可以检查Content-Length头:

request.headers.get(play.api.http.HeaderNames.CONTENT_LENGTH) 

检查它是否大于1 MB,并返回你想要的任何一种反应。正如其他答案所指出的那样,413负载最好太大。

1

当使用身体解析器,你可以指定maxLength:CF api

val maxSize = 1024 * 1024 // 1 MB 
def jsonAction = Action(parse.json(maxSize)) { request => 
    val json = request.body 
    ... 
} 

如果要发送自定义HTTP错误,你可以扩展默认的HTTP错误处理程序。参见documentation

override def onOtherClientError(request: RequestHeader, statusCode: Int, message: String): Future[Result] = { 
    if (statusCode == Status.REQUEST_ENTITY_TOO_LARGE) { 
    Future.successful(Results.EntityTooLarge(Json.obj("error" -> "too large"))) 
    } else { 
    super.onOtherClientError(request, statusCode, message) 
    } 
} 
相关问题