使用Jersey的Http DELETE参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Jersey的Http DELETE参数相关的知识,希望对你有一定的参考价值。

我的代码包含几个不同的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服务的概念。

答案

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

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

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

以上是关于使用Jersey的Http DELETE参数的主要内容,如果未能解决你的问题,请参考以下文章

jersey之get,put,post,delete简单使用

Jersey实现Client端:GET/PUT/POST/DELETE

使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务

带有 XML 参数的 REST 服务操作上的 HTTP 错误 415 不受支持的媒体类型(Jersey + Jetty)

Jersey中的常用注解总结

Jersey常用注解解释 @DET@PUT@POST @DELETE等