编码网址是Play!骨架

时间:2011-05-15 12:31:46

标签: url-routing urlencode playframework

有没有办法在网址的某些部分制作Play! Framework忽略斜杠和?

通常,如果我有以下内容:

www.123.com/api/link/http:www.bla.com/?contenId=123&User=test

它无效。在这种情况下,我想要做的只是在String变量中的URL的最后部分中使用链接来保存它。我想我可以强迫客户端用其他东西替换/?,但我宁愿保持简单。

我的第一个想法是,可能有一种方法来配置路由,以便我们有类似的东西:

/api/link/{data}

其中data将保留URL的剩余部分。虽然无法知道如何做到这一点。

1 个答案:

答案 0 :(得分:6)

除主网址外,您不能拥有: / ?。您应编码您的参数以将其附加到主网址。有关Java,请参阅URLEncoder

这不是有效的网址:

http://www.123.com/api/link/http://www.bla.com/?contenId=123&User=test

必须是:

http://www.123.com/api/link/http%3a%2f%2fwww.bla.com%2f%3fcontenId%3d123%26User%3dtest

然后您可以在处理程序方法中将其传递给{data}参数并解码