Как извлечь файл cookie SSO при использовании библиотеки scalaj http
У меня есть HTTP
ответ. Я пытаюсь получить значение одного из заголовков из него, используяscala
. Мой код выглядит примерно так:
import scalaj.http.Http
val result = Http("http:///sample.com")
.postData("""{"Username":"user1","password":"pass"""")
.header("Content-Type", "application")
.header("Accept", "text/plain")
val headers = result.headers.mkString
println("Headers: " + headers)
Заголовки выглядят примерно так:
Cache-Control -> Vector(no-Store)
Content-Type -> Vector(text/html;charset=ISO-8859-l)
Set-Cookie -> Vector(SESSIONID=D122334;path=/a/b/c;SSO=000112233445)
Из этого заголовка я хочу извлечь только значение SSO. Используя приведенный ниже код, я могу правильно их распечатать.
for((k,v) <- result.headers) println(s"key: $k\nvalue: $v\n")
Получение следующего результата:
key: Cache-Control
value: Vector(no-Store)
key: Content-Type
value: Vector(text/html;charset=ISO-8859-l)
key: Set-Cookie
value: Vector(SESSIONID=D122334;path=/a/b/c;SSO=000112233445)
Я хочу извлечь данные для SSO
под ключ Set-Cookie
один. Я знаю, как этого добиться с помощью python
Я новичок в Scala. Кто-нибудь может мне помочь?
1 ответ
Решение
Использовать cookies
методы и фильтровать cookie по имени
val ssoToken = Http("http:///sample.com")
.postData("""???""")
.header("Content-Type", "application")
.header("Accept", "text/plain")
.asBytes
.cookies
.find(_.getName == "SSO")
.map(_.getValue)
Ты получишь Some("tokenValue")
когда токен найден, если вы хотите получить его как String
, вы можете сделать следующее
ssoToken.getOrElse(sys.error("SSO Token not found"))
Это вызовет исключение, если токен не найден