从 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系统发送。
我正在尝试从 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系统发送。