This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit fa17a1f4f9b1b57e1960e36b388797eb3c1161ec Author: Claus Ibsen <[email protected]> AuthorDate: Fri Jan 13 11:42:15 2023 +0100 CAMEL-18913: Added method to build a http query from a list of values --- .../src/main/java/org/apache/camel/util/URISupport.java | 14 ++++++++++++++ .../test/java/org/apache/camel/util/URISupportTest.java | 13 +++++++++++++ 2 files changed, 27 insertions(+) diff --git a/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java b/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java index 82de5b94ad9..ff02e0c330f 100644 --- a/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java +++ b/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java @@ -794,4 +794,18 @@ public final class URISupport { return joined.toString(); } + public static String buildMultiValueQuery(String key, Iterable<Object> values) { + StringBuilder sb = new StringBuilder(); + for (Object v : values) { + String s = v.toString(); + if (sb.length() > 0) { + sb.append("&"); + } + sb.append(key); + sb.append("="); + sb.append(v); + } + return sb.toString(); + } + } diff --git a/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java b/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java index 635c183ba53..17358de9659 100644 --- a/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java +++ b/core/camel-util/src/test/java/org/apache/camel/util/URISupportTest.java @@ -18,6 +18,7 @@ package org.apache.camel.util; import java.net.URI; import java.net.URISyntaxException; +import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.LinkedHashMap; @@ -599,4 +600,16 @@ public class URISupportTest { assertEquals("param1=%252B447777111222", q); } + @Test + public void testBuildMultiValueQuery() throws Exception { + List<Object> list = new ArrayList<>(); + assertEquals("", URISupport.buildMultiValueQuery("id", list)); + list = List.of("hello"); + assertEquals("id=hello", URISupport.buildMultiValueQuery("id", list)); + list = List.of(1, 2, 3); + assertEquals("id=1&id=2&id=3", URISupport.buildMultiValueQuery("id", list)); + list = List.of("foo", "bar", 3, true, "baz"); + assertEquals("hey=foo&hey=bar&hey=3&hey=true&hey=baz", URISupport.buildMultiValueQuery("hey", list)); + } + }
