斯卡拉 - 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
)
和request
是com.twitter.finagle.http.Request
的类型,这样你就可以以这种方式访问remoteAddress:
post("/[your-api]") { r: MyRequest
val ip = r.request.remoteAddress
}