使用Jersey的Http DELETE参数

问题描述 投票:-1回答:1

我的代码包含几个不同的DELETE方法,其中一个采用参数,或者至少理想情况下它会采用一个参数。但是,当我通过CURL或通过Web客户端发出此请求时,它不起作用。其他DELETE请求函数正常,我已经在我想传递的参数中进行了硬编码,只是为了查看调用是否有效而且确实如此。我用PathParam和QueryParam尝试了这个,但都没有用。这是我使用PathParams的方式,我非常肯定是正确的,QueryParams看起来非常相似,所以我也不想发布它。

@DELETE
@Path("/byId/{id}")
public void deleteById(@PathParam("id") String id)

然后,QueryParams基本上是相同的东西,但显然路径是不同的

根据我的理解,许多RESTful API会忽略带有DELETE请求的任何类型的请求体,或者将其视为PUT或POST。有没有办法解决?基本上我有一个包含多个对象的数据库,我需要根据唯一标识符删除一个对象,由客户端传入。如果没有办法解决这个问题,我还能采取其他方式吗?

可能我错过了一些明显的东西,因为我现在只使用Jersey几周了,到目前为止,我们从未听说过RESTful服务的概念。

rest http parameters jersey http-delete
1个回答
0
投票

您可以将信息作为标头,路径参数,查询参数或邮件正文发送到RESTful服务。

如果所有值都按预期运行,则jax-rs / jersey没有问题。现在您需要调试代码并修复您的实现。 jax-rs只会将DELETE调用与您实现的DELETE http方法匹配。

然后,您有责任在方法中实际执行资源的DELETE操作。如果你没有删除或者你在方法中做了一些其他的动作,jax-rs或jersey不会抱怨。

© www.soinside.com 2019 - 2024. All rights reserved.