All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sd.util.UrlDecoder.scala Maven / Gradle / Ivy

The newest version!
/** @author giabao
  *  created: 2013-10-24 18:25
  *  (c) 2011-2013 sandinh.com
  */
package sd.util

import java.net.{URLDecoder, URI}
import scala.collection.mutable

/** @see play.core.parsers.FormUrlEncodedParser
  *  @see org.apache.http.client.utils.URLEncodedUtils#parse(java.net.URI, java.lang.String)
  */
object UrlDecoder {
  def decode(uri: String, encoding: String = "utf-8"): Map[String, String] = {
    val query = URI.create(uri).getRawQuery
    var params = mutable.HashMap.empty[String, String]

    query.split('&').withFilter(_.contains('=')).foreach { param =>
      val parts = param.split('=')
      val key = URLDecoder.decode(parts.head, encoding)
      val value =
        URLDecoder.decode(parts.tail.headOption.getOrElse(""), encoding)
      params += key -> value
    }

    params.toMap
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy