2016-04-25 39 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 

這將平息該警告你,如果你不能得到固定的根本問題。