我正在開發一個服務,在一個路徑上使用不同的查詢參數調用。我有一個路由綁定到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的錯 –