@InjectLink值中的问号编码为%3F。怎么预防这个?

时间:2014-09-25 15:42:52

标签: java jersey link-header

我使用Jersey的链接标题功能来创建HTTP链接标题:

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

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

我有什么方法可以阻止编码并保留问号char吗?

2 个答案:

答案 0 :(得分:1)

@InjectLink(value)不适用。 URL参数构建应由@InjectLink(method, bindings...)使用。

例如:

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

定位泽西资源 UserResource.java

@Path("users/{orgId}") 
public User getUserById(@PathParam("orgId") String orgId) {...}

答案 1 :(得分:0)

问题mar是为查询参数字符串编码的url,因此在您的路径中使用%3是正常的。尝试使用“绑定”或放置@Queryparams,如How to force URIBuilder.path(...) to encode parameters like "%AD"? This method doesn't always encode parameters with percentage, correctly