gpt4 book ai didi

java - UriBuilder 不正确地编码查询参数值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:26 25 4
gpt4 key购买 nike

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

参数名称:“param”

参数值:"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",没有值。

最佳答案

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

Is this correct ?

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

Should not the character "&" (and may be even "?") be encoded in the parameter value string ?

是的,应该是。

Would not the URL produced be interpreted as follow:

One first parameter, name="param", value = "ar?aaa%3Dbbb" followed by a second parameter, name="ccc%3Dddd", without value.

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

关于java - UriBuilder 不正确地编码查询参数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814210/

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