0

假设我们有一些 RESTful 资源服务于这个 POST:

@POST
@Produces("application/json")
@Consumes("application/json")
public String doPostJson(String string) {
    ...
}

(我能够在我的服务器上运行上面的,所以我假设这是一个有效的实现)

现在我在想 doPostJson() 获取字符串并返回字符串。此字符串可能与 JSON 有效字符串完全不同。我对吗?那么如果我可以在这里使用任何字符串,那么“application/json”的含义是什么?

更多:另一方面,我可以使用这个吗?

@POST
@Produces("text/plain")
@Consumes("text/plain")
public String doPostJson(String string) {
    ... /* read passed parameter as JSON valid string and return JSON string */
}
4

2 回答 2

6

ProducesConsumes注释用于分别与您的 Web 服务用户共享Content-Type和标头信息。Accept内容类型标头将帮助您的服务的接收者/消费者根据该标头中的信息处理响应。如果将 content-type 标头的值标记为 application/json,则接收方可以相应地使用 json 解析器。同样,使用 Consumes,您可以确保 Accept 标头是 application/json,以便您可以相应地进行 json 解析/解组。

于 2013-07-23T17:46:31.137 回答
1

“application/json”是您提供的 mime 类型,请参阅此相关问题了解更多详细信息链接。它有助于应用程序与您的应用程序进行通信。如果响应是错误的 mimetype,他们可能会完全拒绝响应,例如 image/jpeg 而不是 application/json

于 2013-07-23T17:45:36.070 回答