Извините, но я новичок в Scala. Я читал о фьючерсах и Akka, однако у меня все еще есть проблема с возвратом строки для моего метода.
У меня есть метод getAuthString, который должен возвращать строку аутентификации (или токен). Я использовал спрей Jsonsupport и могу распечатать результат
def getToken(url: String, username: String , password: String) = Future[String]{
import MyJsonProtocol._
import spray.httpx.SprayJsonSupport._
val pipeline: HttpRequest => Future[AuthTokenResult[Entry]] = (addCredentials(BasicHttpCredentials(username, password))
~> sendReceive
~> unmarshal[AuthTokenResult[Entry]]
)
val myfutureResponse: Future[AuthTokenResult[Entry]] = pipeline(Get(url))
myfutureResponse onComplete {
case Success(AuthTokenResult(Entry(Content(authString)):: _)) => println(authString)
case Failure(error) => println("An error has occured: " + error.getMessage)
}
это распаковывает json и печатает желаемую authString. Однако печать мне не подходит. Я знаю, что onComplete возвращает модуль. Я хочу вернуть authString, чтобы я мог использовать его где-то еще с другим запросом. Я думаю, что мне придется использовать плоскую карту или карту, но я не уверен, как это сделать. Мне нужно, чтобы мой метод возвращал authString или ошибку.