パスと単一のパラメーターがエンコードされている次のコード サンプルを考えてみましょう...
パラメータ名:「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 は次のように解釈されませんか。
1 つの最初のパラメーター、name="param"、値 = "ar?aaa%3Dbbb"、それに続く 2 番目のパラメーター、name="ccc%3Dddd"、値なし。