akka-http非法请求头
Akka-http illegal request header
我公开了一个接受两个查询参数的简单端点。当我在本地测试代码时,我没有任何问题。但是当部署到产品时,我看到以下消息:
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()
}
如有任何建议,我们将不胜感激!
您正在收到非法请求 header 异常,因此调用您的端点(发出请求)的任何内容都会向您传递非法 Cookie
header 值。它与此请求处理代码无关。简单地说,"It's not you, it's them"。
只要请求本身有效(除了这个错误 header),处理就应该继续(它是 non-terminal)。您可以尝试弄清楚是什么在呼叫您并修复它以摆脱该警告消息。如果他们向您传递 cookie,他们可能希望您能够正确接收并使用它。如果这不是一个选项,您可以将以下配置设置添加到您的演员系统:
akka.http.server.parsing.illegal-header-warnings = on
如果您无法解决根本问题,这将为您消除警告。
我公开了一个接受两个查询参数的简单端点。当我在本地测试代码时,我没有任何问题。但是当部署到产品时,我看到以下消息:
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()
}
如有任何建议,我们将不胜感激!
您正在收到非法请求 header 异常,因此调用您的端点(发出请求)的任何内容都会向您传递非法 Cookie
header 值。它与此请求处理代码无关。简单地说,"It's not you, it's them"。
只要请求本身有效(除了这个错误 header),处理就应该继续(它是 non-terminal)。您可以尝试弄清楚是什么在呼叫您并修复它以摆脱该警告消息。如果他们向您传递 cookie,他们可能希望您能够正确接收并使用它。如果这不是一个选项,您可以将以下配置设置添加到您的演员系统:
akka.http.server.parsing.illegal-header-warnings = on
如果您无法解决根本问题,这将为您消除警告。