13393: Make queryParams known to UriComponents builder so it can

properly encode them
This commit is contained in:
Aharon Hacmon 2022-12-18 10:09:33 +02:00
parent d34ac8d13b
commit d6deaf8c7b
No known key found for this signature in database
GPG Key ID: 9F8F9E3E62D50D48
2 changed files with 16 additions and 12 deletions

View File

@ -597,16 +597,18 @@ public class ApiClient extends JavaTimeFormatter {
Map<String,Object> uriParams = new HashMap<>();
uriParams.putAll(pathParams);
String finalUri = path;
String queryUri = null;
if (queryParams != null && !queryParams.isEmpty()) {
//Include queryParams in uriParams taking into account the paramName
String queryUri = generateQueryUri(queryParams, uriParams);
//Append to finalUri the templatized query string like "?param1={param1Value}&.......
finalUri += "?" + queryUri;
String query = generateQueryUri(queryParams, uriParams);
queryUri = expandPath("?" + query, uriParams).substring(1); //exclude the '?'
//queryUri is the templatized query string like "?param1={param1Value}&.......
}
String expandedPath = this.expandPath(finalUri, uriParams);
final UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(basePath).path(expandedPath);
String expandedPath = this.expandPath(path, uriParams);
final UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(basePath)
.path(expandedPath)
.query(queryUri);
URI uri;
try {

View File

@ -634,16 +634,18 @@ public class ApiClient extends JavaTimeFormatter {
Map<String,Object> uriParams = new HashMap<>();
uriParams.putAll(pathParams);
String finalUri = path;
String queryUri = null;
if (queryParams != null && !queryParams.isEmpty()) {
//Include queryParams in uriParams taking into account the paramName
String queryUri = generateQueryUri(queryParams, uriParams);
//Append to finalUri the templatized query string like "?param1={param1Value}&.......
finalUri += "?" + queryUri;
String query = generateQueryUri(queryParams, uriParams);
queryUri = expandPath("?" + query, uriParams).substring(1); //exclude the '?'
//queryUri is the templatized query string like "?param1={param1Value}&.......
}
String expandedPath = this.expandPath(finalUri, uriParams);
final UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(basePath).path(expandedPath);
String expandedPath = this.expandPath(path, uriParams);
final UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(basePath)
.path(expandedPath)
.query(queryUri);
URI uri;
try {