2012-10-01 84 views
2

我想从“联系人”表中使用以下@DELETE方法(使用Jersey Framework(JAX-RS实现)HTTP状态405 - 方法不允许错误使用WebServices调用DELETE方法

)删除“联系人”
@DELETE 
@Path("/delete/{contact}") 
public String deleteContact(@PathParam("contact") String name) throws ClassNotFoundException, SQLException { 

    String response = DAOaccess.deleteContact(name); 
    return response; 
} 

而下面的网址用于调用来自浏览器的Web服务:

/联系人/删除/ CONTACTNAME

但HTTP状态405 - 中号方法不允许是这样做的。

可能是什么原因?我如何克服这一点?

+0

是/ contacts/delete/etc的正确的URL,即与/ delete/etc相对吗? –

+0

@MartinWilson我在课堂级使用@Path(/ contacts)注释 – Chillax

+0

那么,@DELETE是指删除HTTP方法,对不对?而你正在调用GET HTTP方法,所以,我认为你应该使用另一种测试方法:) –

回答

7

URL = /联系人/删除/ CONTACTNAME

405,因为

似乎删除总是表现为submit (Post method) 和你试图调用从URLget方法。 This is not possible to call the post method as like get。 如果您确实想从浏览器调用此Web服务进行测试,只需下载一个Mozilla plugin (Poster),这将帮助您在所有方法类型中提交Web服务。

+0

我现在在2014年在顶级搜索结果中发现了这个问题,因此我需要对此进行一些更新。有一个非常好的客户端用于测试web服务。所以感觉自由,看看:http://www.getpostman.com/这是一个非常好的工具来模拟一个Web客户端。 您可以在每次打电话时添加集合,以及您想要的每种类型 - GET,POST,PUT,DELETE,PATCH ... – DominikAngerer

2

如果您使用的是Firefox,请使用this插件来测试您的服务。当你从浏览器中直接点击URL时,它将作为@GET请求,在这种情况下不允许。 RestClient也可作为独立应用程序。如果您需要更多功能,请尝试SoapUI。我也发布了对您的question on @DELETE的回复。

相关问题