0

我正在创建一个带有播放框架和 scala 的 Web 服务。服务获取 url 和语言,并使用此信息,但我无法将 url 放入服务中。

我在路由 GET /trans/$url<(http%3A%2F%2Fa)>/:lang controllers.Application.getTranslation(url:String, lang:String) 中有这个

并在应用程序中: def getTranslation(iri: String,lang:String) = Action { 隐式请求 => 等。

我想收到类似 '/trans/htp://a/es'的东西(它的http而不是htp,但我不能在这里写)

有可能吗?因为我什么都试过了,我做不到。有没有一种方法可以将 url 作为参数传递?

4

1 回答 1

1

您必须在双方都使用 url 转义和 unescape。它被称为 URL 编码或百分比编码(因为转义字符使用以 % 开头的组合重写) https://en.wikipedia.org/wiki/Percent-encoding

如果您的客户端在 js 中,这里有一个问题可以为您提供信息: Encode URL in JavaScript?

这是很好的 scala 库,可用于编码和解码 URL 永久编码。 https://github.com/theon/scala-uri

我自己已经开始使用 scala(我在 playframework 上的大部分产品工作仍在 Java 中),所以我不知道是否有更好的 scala uri 库。

编辑:你让我好奇,所以我搜索了一下: http ://www.motobit.com/util/url-encoder.asp 你应该小心两边的编码。

于 2013-04-10T21:11:52.493 回答