2015-08-04 2 views
0

Я хочу деконструкции HttpResponse, что я получаю от сервераКак мне удалить HttpResponse?

Success(HttpResponse(200 OK,List(Server: akka-http/2.3.12, Date: Tue, 04 Aug 2015 22:20:21 GMT),HttpEntity.Default(application/json,69,[email protected]),HttpProtocol(HTTP/1.1))) 

Я смотрел на documentation, но я не знаю, как я деконструкции его

так, как я пытаюсь это

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

     responseFuture onComplete { 
     case Success(_) => 
      log.info("response received {}", response) 
      log.info("notified about EC Failure") 
     } 

Но я не уверен, что является эффективным способом сопоставления рисунка на нем

ответ

0

Вы можете захватить e type внутри Success, который является HttpResponse и присваивает его переменной, которую вы можете использовать в блоке соответствия шаблонов. Если Success содержит HttpResponse, он присваивается переменной hr, тогда мы можем получить доступ к методам класса HttpResponse с hr.

case Success(hr:HttpResponse) => 
     log.info("HTTP code: " + hr.status) 
    } 
1

сделки с фьючерсами, как вы бы Иной монадический типа в Scala ... map, flatMap, forEach и друзья:

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

responseFuture forEach { response => 
    log.info("response received {}", response) 
    log.info("notified about EC Failure") 
} 

// or 

for(response <- responseFuture) { 
    log.info("response received {}", response) 
    log.info("notified about EC Failure") 
} 
0

Как это:

responseFuture onComplete { 
    case (Success(HttpResponse(statusCode, header, entity, protocol)), _) => 
    log.info("Request returned status code {} with entity {}", statusCode, entity) 
    case (Failure(response), _) => 
    log.info("Request failed with response {}", response) 
} 

Вы можете обращаться конкретные коды состояния путем сопоставления с akka.http.scaladsl.model.StatusCodes и добавления дополнительных случаев.