斯卡拉 - Finatra - 从标题读取ip地址

问题描述:

我是新来的Finatra和斯卡拉。我需要在发布请求中存储另一个数据的IP地址。我正在使用自定义案例类: case class MyRequest(name : String, email: String) 如何在此请求中获取remoteAddress? 在此先感谢。斯卡拉 - Finatra - 从标题读取ip地址

看来你不能。如果您的请求类型是自定义案例类。也许你可以不喜欢以下内容,使用杰克逊deserialisation请求自己的案例类:

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

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

我只是觉得它在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 
}