Open
Description
With spring-web 6.2.5, I get the following behavior :
System.out.println(UriComponentsBuilder.fromUriString(“http://myhost?a={p1}&b={p2}&a={p3}”).buildAndExpand(“a1”, “b1”, “a2”));
Output :
http://myhost?a=a1&a=b1&b=a2
I was expecting the following output :
http://myhost?a=a1&b=b1&a=a2
It seems that query params are reordered.
Even if it’s not a good idea to rely on query parameter order, it seems to be legal (see stackoverflow > Is it legal or safe to depend on the ordering of URL query parameters?)… So I think that things like RestClient may require proper query parameter order handling.
Furthermore, query params reordering seems to happen before uri template variables are expanded so values get swapped when given from an array (ie not from map) as the order of variables is then significant.