2016-08-17 3 views
0

Ich versuche, ein Cookie von Akka Httpresponseabrufen Plätzchen vom Akka Httpresponse

val = httprequest Httprequest (method = HttpMethods.POST, uri = uri, entity = params) val responseFuture abrufen: Zukunft [Httpresponse] = Http(). singleRequest (Httprequest (uri = uri))

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

jedoch habe ich nicht den Wert des Cookies in entweder Antworteinheit oder Response-Header finden. Ich glaube, dass die Keksdose bereits in akka unterstützt werden sollte. https://github.com/spray/spray/pull/311

Hat jemand eine Idee, wie kann ich den Cookie mithilfe von akka abrufen? Danke in der Werbung!

Hier ist, wie ich es in Python getan habe.

cookie_jar = cookielib.CookieJar() non_redirecting_opener = urllib2.build_opener (NoRedirectionProcessor, urllib2.HTTPCookieProcessor (cookie_jar)) response = non_redirecting_opener.open (Anfrage) Cookies = {cookie.name: cookie für Plätzchen in cookie_jar}

Antwort

0

Es wird den Trick:

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) 
}) 

aber Sie sollten nicht operat e auf Zukunft direkt, aber senden Sie es durch Akteursystem.