我正在开发一个在具有不同查询参数的路径上调用的服务。我已将路由绑定到Http:
val route: Route = {
get {
pathPrefix("myRoute"){
parameterMap{ params =>
complete(
MyHandler.genExternResponse(params)
)
}
}
}
val bindingFuture = Http().bindAndHandleAsync(Route.asyncHandler(new myEndpoint().route), "localhost", 8081)
由于我对使用的参数没有影响,我无法消除包含未编码的特殊字符(如德语变音符号或商标符号)的调用。 例如
www.myhost.com/myRoute?param1=asd¶m2=adäöü
我知道这些网址无效但其中一个要求是,即使是那些使用这些字符的请求也会被接受,我会使用网址编码处理它们。 问题是,当我调用上述服务时,akka-http拒绝响应状态400的请求,甚至没有将其交给我的代码。 有没有办法可以抓住这些请求并自己处理它们或让akka-http URL为我编码特殊字符。
编辑: 不会解决
答案 0 :(得分:1)
试试这个
val route: Route = {
get {
pathPrefix("myRoute"){
parameters('params)
{ params =>
complete(
MyHandler.genExternResponse(params)
)
}
}
}
val bindingFuture = Http().bindAndHandleAsync(Route.asyncHandler(new myEndpoint().route), "localhost", 8081)