简体   繁体   中英

how can i return response status 405 with empty entity?

How can i return response status 405 with empty entity in java REST?

@POST
@Path("/path")
public Response createNullEntity() {
    return Response.created(null).status(405).entity(null).build();
}

It returns status code 405, but the entity is not null, it is the http page for the error 405.

When you return an error status, Jersey delegates the response to your container's error processing via sendError . When sendError is called, the container will serve up an error page. This process is outlined in the Java Servlet Specification §10.9 Error Handling.

I suspect what you are seeing is your container's default error page for a 405 response. You could probably resolve your issue by specifying a custom error page (which could be empty). Alternatively, Jersey won't use sendError if you provide an entity in your response. You could give it an empty string like this:

@POST
@Path("/path")
public Response createNullEntity() {
  return Response.status(405).entity("").build();
}

The above results in Content-Length of 0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM