第5章 客户端 API - 5.4. Java instances and types for representations 关于 Java实例和表示的类型

优质
小牛编辑
129浏览
2023-12-01

Jersey 服务端默认支持所有用于请求和响应的 Java 类型和表示,也支持在客户端。例如,处理一个响应实体(或表示)作为一个字节流使用InputStream 如下:

  1. InputStream in = response.readEntity(InputStream.class);
  2. ... // Read from the stream
  3. in.close();

注意关闭字节流

使用 File 实例 POST 一个文件

  1. File f = ...
  2. ...
  3. webTarget.request().post(Entity.entity(f, MediaType.TEXT_PLAIN_TYPE));

5.4.1. Adding support for new representations 给新的表示添加支持

新的应用程序定义的表示为 Java 类型需要相同的 JAX-RS 实体提供扩展接口的实现作为服务器端的J AX-RS API支持,即 MessageBodyReader 和 MessageBodyWriter,用于请求和响应的实体(或进、出的表示)。

基于提供者接口的类和实现需要注册在 JAX-RS 或 Jersey Client API 组件,实现 Configurable 合同(ClientBuilder, Client, WebTarget or ClientConfig),正如在前面的章节所示。一些媒体类型是 JAX-RS 的形式提供的 Feature 的一个概念,允许扩展提供者结合多个不同的提供者的扩展和/或配置属性为最终用户提供简化的注册和配置。例如,, MoxyJsonFeature 可以注册,并通过 MOXy 配置启用 JSON 的绑定支持。