如何在http delete方法中将FQDN作为资源ID发送

时间:2015-12-21 21:15:06

标签: java rest http jersey

我有一个表,其中包含完全限定的域名作为主键。我正在设置一个REST api来管理db(主要是插入和删除),但是我遇到了一个问题,发送一个带有url作为路径参数的http DELETE请求。

示例:

REST api servlet容器= http://www.someapp.com/api 要删除的成员资源ID = www.anotherapp.com/home

我想向http://www.someapp.com/api/www.anotherapp.com/home

发送一个http DELETE请求

泽西岛资源路径是:

@DELETE
@Path("/{url}")
public void deleteUrl(@HeaderParam("request-origin") String origin, 
        @PathParam("url") String url){
    // some stuff
}

当我尝试这个时,我收到404错误。如何在http DELETE方法中将FQDN作为资源ID发送?

1 个答案:

答案 0 :(得分:2)

正如bmargulies在评论中提到的那样,错误是由path参数中未转义的/个字符引起的。对我有用的解决方案是在泽西岛的@Path注释中添加一个正则表达式。

@DELETE
@Path("/{url : .+}")
public void deleteUrl(@HeaderParam("request-origin") String origin, 
        @PathParam("url") String url){
    // some stuff
}