使用 Play Framework 识别 JSON 和 HTML 请求

Identify JSON and HTML request with Play Framework

我想知道如果请求来自 JSON 或 HTML,是否有任何方法可以识别 Play Framework(使用 Java 语言而不是 Scala)。

我找到一个方法是:

If (request().accepts(MimeType.HTML)){
    //code 
} else{
    //code
}

唯一可行的方法是 JSON 只接受 application/json 如果不接受第一个 if 子句。

我想要的是 Play 识别 Content-Type 而不是 Accept header。

您可以检查请求 body 是否可解析 JSON 而无需手动查看 header。

public static Result someApi() {
    // Check if the body is parsable json
    JsonNode json = request().body().asJson();
    if (json == null) {
        // The request didn't have a json body
        return ok("not json");
    }

    // Do something with the json
    return ok("got json");
}