Акка-Http не может прочитать тело ответа? - PullRequest
0 голосов
/ 05 июня 2018

У меня есть следующая функция в проекте scala / akka-http:

  def fetchResponse(userIdentifier: String, password: String): Future[HttpResponse] = {
    myResource(userIdentifier, password).map(
      result =>
            if(result.status.intValue() == 201){
              val body = result.headers.collect {
                case c: `Set-Cookie` => c.cookie
              }.find(_.name == "SSO").getOrElse(HttpCookie("SSO", "")).value
              HttpResponse(result.status.intValue(), entity = body)
            }
            else {
             val body =
              result.httpMessage.entity().toString
              println(result)
              HttpResponse(result.status.intValue(),entity = body)
            }
    )

  }

Этот метод вызывает API myMethod через следующую функцию:

 def myResource(userIdentifier:String,password:String): Future[HttpResponse] = {
    Http().singleRequest(HttpRequest(uri = Uri("http://localhost:9090/information"),
      method = HttpMethods.POST,
      entity = {
       FormData(Map("userIdentifier" -> userIdentifier, "password" -> password)).toEntity(HttpCharsets.`UTF-8`)
      }
    )
      .withHeaders(
        RawHeader("Content-Type", "application/x-www-form-urlencoded"),
        RawHeader("Accept", "application/vnd.siren+json")
      ))

  }

Однако, когда я вызываювторая функция из первой функции, она только возвращает статус ответа, а не тело, которое возвращается так:

HttpEntity.Chunked(application/octet-stream)

Отображается следующее предупреждение:

(WaitingForResponseEntitySubscription)] Response entity was not subscribed after 1 second. Make sure to read the response entity body or call `discardBytes()` on it.

Я не уверен, в чем проблема!

...