2016-04-25 56 views
1

我公开了一个简单的端点,它包含两个查询参数。当我在本地测试代码时,我没有任何问题。但是,当部署到PROD我看到以下消息:Akka-http非法请求标题

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() 
} 

任何建议,将不胜感激!

+0

什么是您的网址? – Rumoku

+0

@rumoku'https:// .com/replay?fromDate = 201604250700&toDate = 201604250705' – zaxme

回答

4

您正在收到非法的请求标头异常,因此无论调用您的端点(发出请求)是否会向您传递非法的Cookie标头值。它与这个请求处理代码无关。简单地说,“这不是你,是他们”。

只要请求本身是有效的(除了这个坏头),然后处理应该继续(它是非终端的)。你可以尝试弄清楚什么叫你,并修正它以摆脱那个警告信息。如果他们传递给你一个cookie,他们可能希望你能够正确接收并使用它。如果这不是一个选项,您可以在以下配置设置添加到您的演员系统:

akka.http.server.parsing.illegal-header-warnings = on 

这将平息该警告你,如果你不能得到固定的根本问题。