I’m getting an error on compile with the following code.
I’m trying to call a Web Service.
def authenticate(username: String, password: String): String = {
val request: Future[Response] =
WS.url(XXConstants.URL_GetTicket)
.withTimeout(5000)
.post( Map("username" -> Seq(username), "password" -> Seq(password) ) )
request map { response =>
Ok(response.xml.text)
} recover {
case t: TimeoutException =>
RequestTimeout(t.getMessage)
case e =>
ServiceUnavailable(e.getMessage)
}
}
I’m seeing the following compiler error:
type mismatch; found : scala.concurrent.Future[play.api.mvc.SimpleResult[String]] required: String
The value being returned from your
authenticatefunction isval request = ...which is of typeFuture[Response]but the function expects aStringwhich as the compiler says is a type mismatch error. Changing the return type of the function toFuture[Response]or convertingrequestto aStringbefore returning it should fix it.