48.3.2. 为常见用例创建响应
概述 复制链接链接已复制到粘贴板!
Response 类提供了处理 RESTful 服务需要的更常见响应的快捷方式方法。这些方法处理使用提供的值或默认值设置正确的标头。它们也适当处理实体正文。
创建成功请求的响应 复制链接链接已复制到粘贴板!
当请求成功处理时,需要发送响应来确认请求已达到。该响应可能包含实体。
成功完成响应时的最常见响应是 OK。确定 响应通常包含与请求对应的实体。Response 类具有超载的 ok () 方法,可将响应状态设置为 200,并将提供的实体添加到括起的响应构建器中。ok () 方法有五个版本。最常用的变体是:
-
response
.ok ()- 创建状态为200和空实体正文的响应。 -
response
.ok (java.lang.Object entity)- 创建200个状态的响应,将提供的对象存储在响应实体正文中,并通过内省对象来确定实体介质类型。
创建 200 响应的响应 显示使用 OK 状态创建响应的示例。
创建 200 响应的响应
对于请求者并不预期实体正文的情况,最好发送 204 No Content status 而不是 200 OK 状态。Response.noContent () 方法将创建一个适当的响应对象。
创建具有 204 状态的响应 显示创建具有 204 状态的响应的示例。
创建具有 204 状态的响应
import javax.ws.rs.core.Response; return Response.noContent().build();
import javax.ws.rs.core.Response;
return Response.noContent().build();
为重定向创建响应 复制链接链接已复制到粘贴板!
Response 类提供了处理三个重定向响应状态的方法。
303 看到 Other当请求的资源需要永久重定向到新资源以处理请求时,
303 请参见 Otherstatus。Response类seeOther ()方法创建具有303状态的响应,并将新资源 URI 放置到消息的Location字段中。seeOther ()方法采用单一参数,将新 URI 指定为java.net.URI对象。304 没有修改304 Not Modified状态可用于不同的任务,具体取决于请求的性质。它可用于表示请求的资源自以前的GET请求后没有更改。它还可用来表示修改资源的请求没有更改资源。Response类notModified ()方法创建了具有304状态的响应,并在 HTTP 消息上设置修改的日期属性。notModified ()方法有三个版本:-
notModified -
notModifiedjavax.ws.rs.core.Entitytag -
notModifiedjava.lang.Stringtag
-
307 临时重定向当请求的资源需要向新资源定向到新资源时,307
Temporary Redirect状态很有用,但希望使用者继续使用此资源来处理将来的请求。Response类临时Redirect ()方法创建具有307状态的响应,并将新资源 URI 放置到消息的Location字段中。temporaryRedirect ()方法使用一个参数,该参数将新 URI 指定为java.net.URI对象。
创建具有 304 状态的响应 显示创建具有 304 状态的响应的示例。
创建具有 304 状态的响应
import javax.ws.rs.core.Response; return Response.notModified().build();
import javax.ws.rs.core.Response;
return Response.notModified().build();
创建响应信号错误 复制链接链接已复制到粘贴板!
Response 类提供了为两个基本处理错误创建响应的方法:
-
serverError-creates 状态为500 Internal Server Error的响应。 -
notAcceptablejava.util.List<javax.ws.rs.core.Variant>变体- 创建具有406 Not Acceptable状态的响应,以及包含可接受的资源类型列表的实体正文。
创建 500 状态的响应 显示创建 500 状态的响应示例。
创建 500 状态的响应
import javax.ws.rs.core.Response; return Response.serverError().build();
import javax.ws.rs.core.Response;
return Response.serverError().build();