我公开了一个接受两个查询参数的简单端点。当我在本地测试代码时,我没有任何问题。但是,当部署到prod时,我会看到以下信息:
a.a.ActorSystemImpl Illegal request header: Illegal 'cookie' header: Invalid input '/', expected tchar, '\r', WSP or '=' (line 1, column 186): ...如你所见,我没有做任何cookie解析
import akka.actor.{ActorSystem, Props}
import akka.http.scaladsl.Http
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.Sink
object MainApp extends App {
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
private val config = system.settings.config
private val server = Http().bind(config.getString("akka.http.server.interface"), config.getInt("akka.http.server.port"))
private val route = {
path("replay") {
get {
parameters("fromDate", "toDate") { (fromDate, toDate) =>
complete {
<some other code>
}
}
}
}
}
val bindingFuture = server.to(Sink.foreach {
connection =>
connection handleWith route
}).run()
}如有任何建议,将不胜感激!
发布于 2016-04-25 13:51:37
您将得到一个非法的请求头异常,因此无论是什么调用您的端点(发出请求)都会传递给您非法的Cookie头值。它与此请求处理代码无关。简单地说,“不是你,是他们”。
只要请求本身是有效的(除了这个糟糕的头),那么处理就应该继续(它是非终端的)。你可以试着找出是什么在召唤你,然后把它修好,以消除这个警告信息。如果他们给你一个曲奇,他们可能希望你能够正确地接收和使用它。如果这不是一个选项,则可以将以下配置设置添加到参与者系统中:
akka.http.server.parsing.illegal-header-warnings = on如果你不能解决潜在的问题,这将为你平息这一警告。
https://stackoverflow.com/questions/36839600
复制相似问题