2016-09-20 39 views
0

我是新來的Finatra和斯卡拉。我需要在發佈請求中存儲另一個數據的IP地址。我正在使用自定義案例類: case class MyRequest(name : String, email: String) 如何在此請求中獲取remoteAddress? 在此先感謝。斯卡拉 - Finatra - 從標題讀取ip地址

回答

0

看來你不能。如果您的請求類型是自定義案例類。也許你可以不喜歡以下內容,使用傑克遜deserialisation請求自己的案例類:

post("/{your-api-path}/") { 
    r: Request => 

     val remoteIP = r.remoteHost 
     val myRequest = objectMapper.readValue(r.contentString, classOf[MyRequest]) 
     ... 
    } 
1

我只是覺得它在document,你可以實現你的測試用例類看起來是這樣的:

case class MyRequest (
    request: Request, 
    name : String, 
    email: String 
) 

requestcom.twitter.finagle.http.Request的類型,這樣你就可以以這種方式訪問​​remoteAddress:

post("/[your-api]") { r: MyRequest 
    val ip = r.request.remoteAddress 
}