2017-07-04 71 views
0

我使用Akka HTTP 10.0.9,但努力讓我的單元測試有一個工作的遠程地址。akka http遠程地址

例如單元測試:

Get("/").withHeaders(
    RawHeader("Remote-Address", "192.168.1.1"), RawHeader("X-Forwarded-For", "192.168.1.1") 
) ~> route ~> check { 
    status must_== StatusCodes.OK 
} 

並在Web服務器代碼:

extractClientIP{ clientAddr => 
    complete(s"$clientAddr") 
} 

當運行通過命令行該應用程序,在客戶端地址被正確地返回。但是,當通過單元測試運行時,客戶端地址總是會回到「未知」

我在做什麼錯?

回答

0

這是由引起阿卡HTTP不能處理RawHeader測試。您可以通過使用解決它設置IPRemote-Address對象測試:

import akka.http.scaladsl.model.headers.`Remote-Address` 
Get().withHeaders(
    `Remote-Address`(RemoteAddress(new InetSocketAddress("192.168.1.1", 23))) 
) 
+0

哦,這樣的遠程地址類型是很神奇? –