Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 使用Jersey使用参数进行Http删除_Rest_Http_Parameters_Jersey_Http Delete - Fatal编程技术网

Rest 使用Jersey使用参数进行Http删除

Rest 使用Jersey使用参数进行Http删除,rest,http,parameters,jersey,http-delete,Rest,Http,Parameters,Jersey,Http Delete,我的代码包含几个不同的DELETE方法,其中一个方法需要一个参数,或者至少理想情况下需要一个参数。然而,当我通过CURL或web客户机发出这个请求时,它不起作用。其他的DELETE请求功能正常,我已经硬编码了我想要传递的参数,只是为了看看调用是否有效。我用PathParam和QueryParam都试过了,但都不起作用。下面是我如何使用PathParams的,我很确定这是正确的,QueryParams看起来非常相似,所以我不想再发布了 @DELETE @Path("/byId/{id}") pub

我的代码包含几个不同的DELETE方法,其中一个方法需要一个参数,或者至少理想情况下需要一个参数。然而,当我通过CURL或web客户机发出这个请求时,它不起作用。其他的DELETE请求功能正常,我已经硬编码了我想要传递的参数,只是为了看看调用是否有效。我用PathParam和QueryParam都试过了,但都不起作用。下面是我如何使用PathParams的,我很确定这是正确的,QueryParams看起来非常相似,所以我不想再发布了

@DELETE
@Path("/byId/{id}")
public void deleteById(@PathParam("id") String id)
对于QueryParams,基本上是一样的,但显然路径不同

据我所知,许多RESTful API忽略了带有删除请求的任何类型的请求体,或者将其视为PUT或POST。这有什么办法吗?基本上,我有一个包含多个对象的数据库,我需要根据客户端传入的唯一标识符删除一个对象。如果没有办法的话,我还有别的办法吗


我可能在这里遗漏了一些明显的东西,因为我现在只使用了Jersey几个星期,到目前为止,我甚至从未听说过RESTful服务的概念

您可以将信息作为头、路径参数、查询参数或消息正文发送到RESTful服务

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


然后,您有责任在方法中实际执行资源的删除操作。如果您不删除或在方法中执行其他操作,jax rs或jersey不会抱怨。

请将您的代码添加到您的问题中。@Tichodroma我可以添加的代码并不多,除了我如何使用PathParams和QueryParams(将代码移动到问题中)这应该可以工作。当你说“它不工作”时,你的确切意思是什么?@Thichodroma从数据库中删除它,它应该根据参数中给定的一个或多个id进行删除,我使用路径参数进行调用,或者将它们添加为查询字符串,而具有该id的对象不会从数据库中删除。要么请求被忽略,要么参数被忽略,我不确定是哪个。就像我说的,我试着在id中对方法进行硬编码,以查看id是否正确或者代码是否正常工作,这很好。在访问数据库之前,试着检查
id
的值。
id
null