48.3.2. 为常见用例创建响应


概述

Response 类提供了处理 RESTful 服务需要的更常见响应的快捷方式方法。这些方法处理使用提供的值或默认值设置正确的标头。它们也适当处理实体正文。

创建成功请求的响应

当请求成功处理时,需要发送响应来确认请求已达到。该响应可能包含实体。

成功完成响应时的最常见响应是 OK确定 响应通常包含与请求对应的实体。Response 类具有超载的 ok () 方法,可将响应状态设置为 200,并将提供的实体添加到括起的响应构建器中。ok () 方法有五个版本。最常用的变体是:

  • response .ok ()- 创建状态为 200 和空实体正文的响应。
  • response .ok (java.lang.Object entity)- 创建 200 个状态的响应,将提供的对象存储在响应实体正文中,并通过内省对象来确定实体介质类型。

创建 200 响应的响应 显示使用 OK 状态创建响应的示例。

创建 200 响应的响应

import javax.ws.rs.core.Response;
import demo.jaxrs.server.Customer;
...

Customer customer = new Customer("Jane", 12);

return Response.ok(customer).build();

对于请求者并不预期实体正文的情况,最好发送 204 No Content status 而不是 200 OK 状态。Response.noContent () 方法将创建一个适当的响应对象。

创建具有 204 状态的响应 显示创建具有 204 状态的响应的示例。

创建具有 204 状态的响应

import javax.ws.rs.core.Response;

return Response.noContent().build();

为重定向创建响应

Response 类提供了处理三个重定向响应状态的方法。

303 看到 Other

当请求的资源需要永久重定向到新资源以处理请求时,303 请参见 Other status。

ResponseseeOther () 方法创建具有 303 状态的响应,并将新资源 URI 放置到消息的 Location 字段中。seeOther () 方法采用单一参数,将新 URI 指定为 java.net.URI 对象。

304 没有修改

304 Not Modified 状态可用于不同的任务,具体取决于请求的性质。它可用于表示请求的资源自以前的 GET 请求后没有更改。它还可用来表示修改资源的请求没有更改资源。

ResponsenotModified () 方法创建了具有 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();

创建响应信号错误

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();

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.