使用play框架实现服务,其中一个参数是url

时间:2013-04-05 19:38:13

标签: web-services scala playframework

我正在使用play framework和scala创建一个Web服务。该服务获取网址和语言,并使用此信息,但我无法将网址添加到服务中。

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

并在申请中:     def getTranslation(iri:String,lang:String)= Action {implicit request => 等

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

它可以吗?因为我已经尝试了一切,但我无法做到。是一种传递url作为参数的方法吗?

1 个答案:

答案 0 :(得分:1)

你必须在两侧进行网址逃脱和不可见。它被称为URL编码或百分比编码(因为使用以%开头的组合重写了转义字符) https://en.wikipedia.org/wiki/Percent-encoding

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

这里有一个很好的scala库,可以用来编码和解码URL persent编码。 https://github.com/theon/scala-uri

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

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