3

让我们考虑以下代码示例,其中对路径和单个参数进行了编码...

参数名称:“参数”

参数值:“foo/bar?aaa=bbb&ccc=ddd”(恰好是带查询参数的url)

   String test = UriBuilder.fromPath("https://dummy.com").
               queryParam("param", "foo/bar?aaa=bbb&ccc=ddd").
               build().toURL().toString();

返回的编码 URL 字符串为:

 "https://dummy.com?param=foo/bar?aaa%3Dbbb&ccc%3Dddd"

这个对吗 ?

字符“&”(甚至可能是“?”)不应该在参数值字符串中编码吗?

生成的 URL 会不会被解释如下:

第一个参数 name="param", value = "ar?aaa%3Dbbb" 后跟第二个参数 name="ccc%3Dddd",没有值。

4

1 回答 1

1

您对“fromPath”的初始调用可能应该是“fromUri”。那就是说...

这个对吗 ?

不,它看起来不像正确的输出。

字符“&”(甚至可能是“?”)不应该在参数值字符串中编码吗?

是的,应该是。

生成的 URL 会不会被解释如下:

第一个参数 name="param", value = "ar?aaa%3Dbbb" 后跟第二个参数 name="ccc%3Dddd",没有值。

第一个参数将是“foo/bar?aaa=bbb”,但是是的,您的解释正确。这看起来像是您的 javax.ws.rs.core 提供程序中的一个错误。

于 2010-05-11T23:27:51.947 回答