1

我使用 Jersey 的 Link Headers 功能来创建 HTTP 链接头:

@InjectLink(value="users/?orgId=12345&page=0",rel="first")

除问号外效果很好 - 这在 %3F 中编码,生成的 URL 如下所示: http://localhost:8080/app/users/%3ForgId=12345&page=0

我有什么方法可以防止编码并保留问号字符吗?

4

2 回答 2

1

它不适合@InjectLink(value). URL 参数构建应由 @InjectLink(method, bindings...).

例如:

@InjectLink(
  resource = UserResource.class,
  method ="getUserById", 
  bindings ={@Binding(name = "orgId", value = "${instance.orgId}")},
  style =  Style.ABSOLUTE,
  ... )

并以 Jersey 资源UserResource.java 为目标:

@Path("users/{orgId}") 
public User getUserById(@PathParam("orgId") String orgId) {...}
于 2014-12-17T11:14:17.023 回答
0

问题 mar 是为查询参数字符串编码的 url,因此在您的路径中有 %3 是正常的。尝试使用“绑定”或像这样放置@Queryparams如何强制 URIBuilder.path(...) 对“%AD”等参数进行编码?此方法并不总是正确地用百分比编码参数

于 2014-09-25T16:27:37.517 回答