如何将带有空格、逗号等的字符串作为 PathParam 进行管理?

How to manage string with blanks, comma etc. as PathParam?

我创建了一个网络服务,需要获取一个包含空格、逗号、括号和其他特殊字符的字符串。我想将它作为 PathParam 传递,但我无法管理这个字符串。

我要管理的字符串类似如下:

POLYGON((9.5 44.6, 12.5 44.6, 12.5 42.0, 9.5 42.0, 9.5 44.6))

我的方法是:

@POST
@Path("/j_update_spi/{step}/{srid}/{polygon:.+}")
public Response updateSPI(@PathParam("step") String step,
                          @PathParam("srid") String srid,
                          @PathParam("polygon") String polygon){
...
}

我尝试为多边形参数设置“.+”,但它不起作用(我也尝试使用 .*)。

如果我调用此服务,方法不会启动。

我解决了我的问题:我更改了 PathParam "polygon" 并将其设为可选。然后我将正则表达式规则更改为多边形 PathParam.

@POST
@Path("/update_spi/{step}/{srid}{polygon:(/polygon/.+?)?}")
public Response updateSPI(@PathParam("step") String step,
                          @PathParam("srid") String srid,
                          @PathParam("polygon") String polygon)

为了提取定义我的 WKT 多边形的字符串,我使用了 split 方法:

if(!polygon.matches(""))
     polygon = polygon.split("/")[2];