我正在为我们的应用程序开发一个新的RESTful Web服务.
在某些实体上执行GET时,客户端可以请求实体的内容.如果他们想要添加一些参数(例如排序列表),他们可以在查询字符串中添加这些参数.
或者,我希望人们能够在请求正文中指定这些参数. HTTP/1.1似乎没有明确禁止这一点.这将允许他们指定更多信息,可以更容易指定复杂的XML请求.
我的问题:
我正在尝试使用一个 REST API,它需要一个带有 GET 请求的主体。但是由于 GET 通常没有正文,所以我找不到在我的请求中附加正文的方法。我也在构建 REST API,但教授不允许我们将方法更改为 POST(他给了我们一个我们要创建的端点列表,不多也不少)。
我正在尝试这样做:
Response r = target.request().method(method, Entity.text(body));
Run Code Online (Sandbox Code Playgroud)
我在哪里设置methodtoGET和bodyto my get body。但是,使用这种方法我得到一个例外:
javax.ws.rs.ProcessingException: RESTEASY004565: A GET request cannot have a body.
Run Code Online (Sandbox Code Playgroud)
有没有办法用 JAX-RS 做到这一点?我们学会了使用 JAX-RS,所以我更喜欢使用它的解决方案,因为我不确定我的教授会允许我们使用任何其他 REST 客户端。我目前正在使用 WildFly 服务器提供的 RESTEasy。
(这不是带有请求正文的HTTP GET的副本,因为我问的是如何在 JAX-RS 中创建带有正文的 GET 请求,而不是是否应该这样做。)