我正在开发一个服务,在一个路径上使用不同的查询参数调用。我有一个路由绑定到http:akka-http如何接受无效的URI [不会解决]
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äöü
我知道,这些网址是无效的,但其中一项规定是,即使这些字符的请求被接受UND我处理他们的URL编码。 问题是,当我调用上述服务时,akka-http拒绝带有Response-status 400的请求,甚至没有将它交给我的代码。 有没有一种方法可以让我自己处理这些请求并处理它们,或者让akka-http对我进行特殊字符的URL编码。
编辑: 不会解决
你能张贴堆栈跟踪? –
不知道如何,因为打印堆栈跟踪的代码中没有错误,并且akka-http仅响应400. –
它可能是抛出异常的'MyHandler.genExternResponse'吗?抛出的异常将转换为400.如果将代码更改为完整(“ok”),则不会出现错误,所以它不太可能成为Akka的错 –