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));
+    }
+
 }

Reply via email to