javax.ws.rs 媒体类型 - 接受 Header
javax.ws.rs MediaType - Accept Header
@Consumes
和 @Produces
都接受媒体类型。 accept Header in request 对应哪个注解?
在大多数示例中(例如 How to deal with accept-parameters when developing a jax-rs application),它显示了使用 @Produces
接受来自客户端请求的 Header。
@Consumes
用于请求类型,即客户端发送的类型,即 Content-Type
。例如
@Consumes("application/json")
...
> POST / HTTP/1.1
> Content-Type: application/json
{ "json": "data" }
< 200 OK
@Consumes("application/json")
...
> POST / HTTP/1.1
> Content-Type: application/xml
<xml><data></data></xml>
> 415 Unsupported Media Type
这里有两个示例请求。在服务器上,两者都带有 @Consumes("application/json")
注释。这意味着它只能处理以 JSON 格式发送的数据。第一次请求,客户端发送正确的数据 Content-Type
,所以它得到一个 OK 响应。第二个请求,它发送 XML 数据 Content-Type
不受支持,所以它得到一个 415.
@Produces
是服务器发送的数据类型。客户端还可以添加一个 Accept
header 来说明它可以接受(或处理)什么类型。如果 @Produces
中未指定该类型,则服务器无法处理该类型,并且客户端会收到一条错误消息。例如
@Produces("application/json")
...
> GET / HTTP/1.1
> Accept: application/json
< 200 OK
{ "json" : "data" }
@Produces("application/json")
...
> GET / HTTP/1.1
> Accept: application/xml
< 406 Not Acceptable
@Consumes
和 @Produces
都接受媒体类型。 accept Header in request 对应哪个注解?
在大多数示例中(例如 How to deal with accept-parameters when developing a jax-rs application),它显示了使用 @Produces
接受来自客户端请求的 Header。
@Consumes
用于请求类型,即客户端发送的类型,即 Content-Type
。例如
@Consumes("application/json")
...
> POST / HTTP/1.1
> Content-Type: application/json
{ "json": "data" }
< 200 OK
@Consumes("application/json")
...
> POST / HTTP/1.1
> Content-Type: application/xml
<xml><data></data></xml>
> 415 Unsupported Media Type
这里有两个示例请求。在服务器上,两者都带有 @Consumes("application/json")
注释。这意味着它只能处理以 JSON 格式发送的数据。第一次请求,客户端发送正确的数据 Content-Type
,所以它得到一个 OK 响应。第二个请求,它发送 XML 数据 Content-Type
不受支持,所以它得到一个 415.
@Produces
是服务器发送的数据类型。客户端还可以添加一个 Accept
header 来说明它可以接受(或处理)什么类型。如果 @Produces
中未指定该类型,则服务器无法处理该类型,并且客户端会收到一条错误消息。例如
@Produces("application/json")
...
> GET / HTTP/1.1
> Accept: application/json
< 200 OK
{ "json" : "data" }
@Produces("application/json")
...
> GET / HTTP/1.1
> Accept: application/xml
< 406 Not Acceptable