我使用 Jersey 的 Link Headers 功能来创建 HTTP 链接头:
@InjectLink(value="users/?orgId=12345&page=0",rel="first")
除问号外效果很好 - 这在 %3F 中编码,生成的 URL 如下所示:
http://localhost:8080/app/users/%3ForgId=12345&page=0
我有什么方法可以防止编码并保留问号字符吗?
我使用 Jersey 的 Link Headers 功能来创建 HTTP 链接头:
@InjectLink(value="users/?orgId=12345&page=0",rel="first")
除问号外效果很好 - 这在 %3F 中编码,生成的 URL 如下所示:
http://localhost:8080/app/users/%3ForgId=12345&page=0
我有什么方法可以防止编码并保留问号字符吗?
它不适合@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) {...}
问题 mar 是为查询参数字符串编码的 url,因此在您的路径中有 %3 是正常的。尝试使用“绑定”或像这样放置@Queryparams如何强制 URIBuilder.path(...) 对“%AD”等参数进行编码?此方法并不总是正确地用百分比编码参数