diff options
author | adamw <adam@warski.org> | 2017-11-25 10:28:13 +0100 |
---|---|---|
committer | adamw <adam@warski.org> | 2017-11-25 10:28:13 +0100 |
commit | 2a6d7a13c410e07d8ce58701f0fae816df3919e0 (patch) | |
tree | c7dfcd35c7baeca86eaa120edf2685f2fe81ff7d /core | |
parent | ae5876b86b8e12ee182e730c88aa690871d3fe67 (diff) | |
download | sttp-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.scala | 2 | ||||
-rw-r--r-- | core/src/test/scala/com/softwaremill/sttp/UriTests.scala | 4 |
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 { |