aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authoradamw <adam@warski.org>2017-11-25 10:28:13 +0100
committeradamw <adam@warski.org>2017-11-25 10:28:13 +0100
commit2a6d7a13c410e07d8ce58701f0fae816df3919e0 (patch)
treec7dfcd35c7baeca86eaa120edf2685f2fe81ff7d /core
parentae5876b86b8e12ee182e730c88aa690871d3fe67 (diff)
downloadsttp-2a6d7a13c410e07d8ce58701f0fae816df3919e0.tar.gz
sttp-2a6d7a13c410e07d8ce58701f0fae816df3919e0.tar.bz2
sttp-2a6d7a13c410e07d8ce58701f0fae816df3919e0.zip
Properly encode IDN domain names
Diffstat (limited to 'core')
-rw-r--r--core/src/main/scala/com/softwaremill/sttp/Uri.scala2
-rw-r--r--core/src/test/scala/com/softwaremill/sttp/UriTests.scala4
2 files changed, 4 insertions, 2 deletions
diff --git a/core/src/main/scala/com/softwaremill/sttp/Uri.scala b/core/src/main/scala/com/softwaremill/sttp/Uri.scala
index 424fa5a..eebd450 100644
--- a/core/src/main/scala/com/softwaremill/sttp/Uri.scala
+++ b/core/src/main/scala/com/softwaremill/sttp/Uri.scala
@@ -117,7 +117,7 @@ case class Uri(scheme: String,
val schemeS = encode(Rfc3986.Scheme)(scheme)
val userInfoS = userInfo.fold("")(encodeUserInfo(_) + "@")
- val hostS = encode(Rfc3986.Host)(host)
+ val hostS = encode(Rfc3986.Host)(java.net.IDN.toASCII(host))
val portS = port.fold("")(":" + _)
val pathPrefixS = if (path.isEmpty) "" else "/"
val pathS = path.map(encode(Rfc3986.PathSegment)).mkString("/")
diff --git a/core/src/test/scala/com/softwaremill/sttp/UriTests.scala b/core/src/test/scala/com/softwaremill/sttp/UriTests.scala
index 810856e..3c54fd2 100644
--- a/core/src/test/scala/com/softwaremill/sttp/UriTests.scala
+++ b/core/src/test/scala/com/softwaremill/sttp/UriTests.scala
@@ -49,7 +49,9 @@ class UriTests extends FunSuite with Matchers {
Uri("http", None, "example.com", None, Nil, Nil, Some("f:g/h i")) ->
"http://example.com#f:g/h%20i",
Uri("http", None, "example.com", None, List("key=value"), Nil, None) ->
- "http://example.com/key=value"
+ "http://example.com/key=value",
+ Uri("http", "www.mikoĊ‚ak.net") ->
+ "http://www.xn--mikoak-6db.net"
)
for {