Skip to content

Instantly share code, notes, and snippets.

@JMathnov
JMathnov / extractQueryParams.scala
Created May 13, 2020 15:41
[Scala] Extract query parameters from URI
def parseUriParameters(uri: String): Map[String, Seq[String]] = {
val parts = uri split "\\?"
if (parts.length > 1) {
val query = parts(1)
val utf8 = "UTF-8"
query.split("&").flatMap{queryString =>
val fullQueryParam = queryString.split("=")
val keyValues = fullQueryParam.headOption.flatMap(key => fullQueryParam.drop(1).headOption.map(value => URLDecoder.decode(key, utf8) -> URLDecoder.decode(value, utf8)))
keyValues
}.groupBy(_._1).mapValues(_.toVector.map(_._2))