Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jersey服务器:返回字符串和非200返回码_Java_Jersey - Fatal编程技术网

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

Java Jersey服务器:返回字符串和非200返回码,java,jersey,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"; } 问题是,从逻辑上讲,当我返回字符串“用法错误:输入必须以“123”开头

我有以下方法:

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

问题是,从逻辑上讲,当我返回字符串“用法错误:输入必须以“123”开头时,返回的代码是200。如何更改该值,以便在将返回代码更改为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();
}

对于这种情况,您可以使用
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();
}
我在代码的最后一行添加了
.build()
。你的回答很中肯,非常完美(非常有用!),谢谢!我在代码的最后一行添加了
.build()
。你的回答很中肯,非常完美(非常有用!),谢谢!