Jersey服务器:返回一个字符串和一个非200返回码

时间:2017-11-12 16:44:17

标签: java jersey

我有以下方法:

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

问题在于逻辑上,当我返回字符串"Usage error: input must start with '123'"时,返回代码是200.如何更改它,以便我可以返回字符串,同时将返回代码更改为400 ?

1 个答案:

答案 0 :(得分:5)

您可以使用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();
}