diff options
Diffstat (limited to 'src/main/java/com/keuin/crosslink/util/HttpQuery.java')
-rw-r--r-- | src/main/java/com/keuin/crosslink/util/HttpQuery.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/java/com/keuin/crosslink/util/HttpQuery.java b/src/main/java/com/keuin/crosslink/util/HttpQuery.java new file mode 100644 index 0000000..af06e4d --- /dev/null +++ b/src/main/java/com/keuin/crosslink/util/HttpQuery.java @@ -0,0 +1,22 @@ +package com.keuin.crosslink.util; + +import java.util.Collections; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class HttpQuery { + // Copied from https://stackoverflow.com/a/63976481 (modified) + public static Map<String, String> getParamMap(String query) { + // query is null if not provided (e.g. localhost/path ) + // query is empty if '?' is supplied (e.g. localhost/path? ) + if (query == null || query.isEmpty()) return Collections.emptyMap(); + + return Stream.of(query.split("&")) + .filter(s -> !s.isEmpty()) + .map(kv -> kv.split("=", 2)) + .collect(Collectors.toMap( + x -> x[0], + x -> ((x.length == 2) ? x[1] : ""))); + } +} |