gpt4 book ai didi

java - @QueryParam 不解析 anchor 后的参数 ('#' )

转载 作者:行者123 更新时间:2023-11-30 03:05:24 27 4
gpt4 key购买 nike

我注意到 javax.ws.rs.QueryParam 的 @QueryParam 注释中有一个奇怪的行为;

引用下面的代码片段,当我将 url 设置为类似以下内容时:

http://host:port/services/serv123?test=OK

我可以按预期检索“test”的值。

但是,当我将 url 设置为类似以下内容时:

http://host:port/services/serv123#top?test=OK

@QueryParam("test") 返回null

这是我正在使用的代码。每个注释都是显式导入的。

@Path("/services")
public class Services {
[...]
@GET
@Path("/{srvID}")
@Produces(MediaType.TEXT_HTML)
public ServicesView getServiceDetailPage(@PathParam("srvID") String srvId,
@QueryParam("test") String test) {
[...]
return new ServicesView([...]);
}
[...]
}

我已经在 Dropwizard 0.9.1(包括 Jersey)中对此进行了测试

请注意:

  • 我对行为的解释感兴趣,而不是解决方法(我已经有一些解决方法,如果有人感兴趣,可以发布它们)。
  • 据我所知,http://host:port/services/serv123#top?test=OK 是一个完全合法的网址,@QueryParam 应该能够处理它(我很高兴要证明错误,只需解释为什么它不是合法的网址即可)。
  • 为了进行测试,我也尝试将“#”编码为 %23%3F,但正如预期的那样,它不起作用。

我错过了什么?

最佳答案

而不是

http://host:port/services/serv123#top?test=OK

使用

http://host:port/services/serv123?test=OK#top

如果您希望 ?test=OK 成为查询参数而不是 anchor 的一部分。

关于java - @QueryParam 不解析 anchor 后的参数 ('#' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34911484/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com