diff options
-rw-r--r-- | core/src/main/scala/com/softwaremill/sttp/Uri.scala | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/Uri.scala b/core/src/main/scala/com/softwaremill/sttp/Uri.scala index a8403d7..e4d8a8e 100644 --- a/core/src/main/scala/com/softwaremill/sttp/Uri.scala +++ b/core/src/main/scala/com/softwaremill/sttp/Uri.scala @@ -1,7 +1,7 @@ package com.softwaremill.sttp import java.net.URLEncoder - +import java.net.URI import Uri.{QueryFragment, QueryFragmentEncoding, UserInfo} import Uri.QueryFragment.{KeyValue, Plain, Value} @@ -28,6 +28,7 @@ case class Uri(scheme: String, queryFragments: Seq[QueryFragment], fragment: Option[String]) { + def scheme(s: String): Uri = this.copy(scheme = s) def userInfo(username: String): Uri = @@ -195,6 +196,14 @@ object Uri { Uri(scheme, None, host, Some(port), path, Vector.empty, None) def apply(scheme: String, host: String, path: Seq[String]): Uri = Uri(scheme, None, host, None, path, Vector.empty, None) + def apply(javaUri: URI): Uri = { + val scheme: String = javaUri.getScheme + val host: String = javaUri.getHost + val port: Option[Int] = Option(javaUri.getPort) + val path: Seq[String] = javaUri.getPath.split("/").toList.tail + val fragment: Option[String] = Option(javaUri.getFragment) + Uri(scheme, None, host, port, path, Vector.empty, fragment) + } sealed trait QueryFragment object QueryFragment { |