我是Finatra和scala的新手。我需要在post请求中将ip地址与另一个数据一起存储。我使用自定义案例类:
case class MyRequest(name : String, email: String)
如何在此请求中获取remoteAddress?
提前谢谢。
答案 0 :(得分:2)
我只是在document中找到它,你可以实现你的案例类:
case class MyRequest (
request: Request,
name : String,
email: String
)
并且request
是com.twitter.finagle.http.Request
的类型,因此您可以通过以下方式访问remoteAddress:
post("/[your-api]") { r: MyRequest
val ip = r.request.remoteAddress
}
答案 1 :(得分:0)
看来你不能。如果您的请求类型是自定义案例类。可能你可以做类似下面的事情,并使用jackson反序列化你自己的案例类的请求:
post("/{your-api-path}/") {
r: Request =>
val remoteIP = r.remoteHost
val myRequest = objectMapper.readValue(r.contentString, classOf[MyRequest])
...
}