从 Akka HttpResponse 检索 Cookie

Retrieve Cookie From Akka HttpResponse

我正在尝试从 Akka HttpResponse 检索 cookie

val httpRequest = HttpRequest(method=HttpMethods.POST, uri = uri, entity=params) val responseFuture: Future[HttpResponse] = Http().singleRequest(HttpRequest(uri = uri))

responseFuture2.flatMap { response =>
  println(response.entity)
  response.headers.collect {
    case hc =>
      println(hc)
  }
}

但是我无法在响应实体或响应中找到 cookie 值 headers。我相信 akka 应该已经支持 cookie jar。 https://github.com/spray/spray/pull/311

有谁知道如何使用 akka 检索 cookie?感谢广告!

这是我在 python 中的做法。

cookie_jar = cookielib.CookieJar() non_redirecting_opener = urllib2.build_opener(NoRedirectionProcessor, urllib2.HTTPCookieProcessor(cookie_jar)) response = non_redirecting_opener.open(request) cookies = {cookie.name: cookie for cookie in cookie_jar}

它会成功的:

import akka.http.scaladsl.model.headers._

val responseFuture: Future[HttpResponse] = Http(context.system).singleRequest(HttpRequest(uri = "http://localhost:8080"))

responseFuture.onComplete(response => {
  val cookies = response.get.headers.collect {
    case c: `Set-Cookie` => c.cookie
  }
  println(cookies)
})

但是不要直接操作Future,而是通过actor系统发送。