【发布时间】:2012-01-09 17:32:06
【问题描述】:
我希望能够访问以下其余 URL:
第一个 URL 工作正常。我在使用 JAX-RS 的 Jersey 实现的 $count URL 时遇到问题。
这是资源的代码。
@Path("/helloworld")
public class HelloWorldResource {
@GET
@Produces("text/plain")
public String getClichedMessage() {
return "Hello World!";
}
@GET
@Path("\\$count")
@Produces("text/plain")
public String getClichedMessage(
@PathParam("\\$count") String count) {
return "Hello count";
}
}
我也在 @Path 和 @PathParam 中尝试过 "$count",但也没有用。
注意:如果我从上面的所有代码中删除美元符号,那么它适用于 URL localhost:9998/helloworld/count。但是我需要美元符号出现在 URL 中,因为这将是一个 OData 生产者应用程序。
【问题讨论】:
-
我很确定 $ 符号在 URL 编码规范中具有语义含义。我无法想象你可以在不编码的情况下在常规 URL 中使用它。
-
美元符号在 URL 中使用是合法的,无需编码。它在开放数据协议中大量使用,这是一个基于休息的协议。见link