2016-09-20 2 views
0

Я новичок в Finatra и scala. Мне нужно сохранить ip-адрес с другими данными в почтовом запросе. Я использую пользовательский класс класса: case class MyRequest(name : String, email: String) Как я могу получить удаленный адрес в этом запросе? Спасибо заранее.Scala - Finatra - Чтение ip-адреса из заголовка

ответ

0

Кажется, вы не можете. Если ваш тип запроса является обычным классом case. Возможно, вы можете сделать что-то вроде следующего, и использовать Джексон для десериализации запрос на свой собственный случае класс:

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 
) 

и request является тип com.twitter.finagle.http.Request, так что вы можете получить доступ к remoteAddress таким образом:

post("/[your-api]") { r: MyRequest 
    val ip = r.request.remoteAddress 
} 
Смежные вопросы