我正在使用Unfiltered 0.6.8(使用 Jetty 连接器)并且遇到了一个奇怪的行为:路径段没有 URL 解码。
以下代码是我的最小测试用例:
import unfiltered.request._
import unfiltered.response._
object Test extends App with unfiltered.filter.Plan {
def intent = {
case reg @ Path(Seg(test :: Nil)) =>
println(test)
ResponseString(test)
}
unfiltered.jetty.Http.local(8080).filter(Test).run()
}
查询会在客户端和服务器端http://localhost:8080/some_string
产生预期的结果: 。some_string
另一方面,客户端和服务器都http://localhost:8080/some%20string
产生some%20string
了收益,而不是some string
我所期望的。
解决这个问题是微不足道的(java.net.URLDecoder#decode(String, String)
),但我想知道:
- 我忘记了一些微不足道的事情并自欺欺人。
- unfiltered 有一个工具包可以自动处理这些麻烦。
- 如果以上都不是,这种行为是否有特殊原因,或者我应该提交错误报告?
作为旁注,unfiltered
标签不存在,我没有足够的声誉来创建它,这就是我默认使用scala
.