Jersey 服务器:Return 一个字符串和一个非 200 return 代码

Jersey server: Return a string and a non-200 return code

我有以下方法:

@GET
@Path("/myFunc")
public String myFunc(@QueryParam("input") String input) {
    if (! input.startsWith("123")) {
        return "Usage error: input must start with '123'";
    }
    return "Success";
}

问题是逻辑上,当我 return 字符串 "Usage error: input must start with '123'" 时,return 代码是 200。我怎样才能改变它,这样我就可以 return 字符串,同时将 return 代码更改为 400?

对于这种情况,您可以使用 javax.ws.rs.core.Response 类型 - 如下所示:

@GET
@Path("/myFunc")
public Response myFunc(@QueryParam("input") String input) {
    if (! input.startsWith("123")) {
        return Response.status(Status.BAD_REQUEST)
                       .entity("Usage error: input must start with '123'")
                       .build();
    }
    return Response.ok("Success").build();
}