Преобразовать байтовую строку сущности Akka http в Long - PullRequest
0 голосов
/ 15 января 2019

Как читать long из потока ответов Akka-HTTP неизвестной длины?

пример:

          val futureResponse = Http(system).singleRequest(
            HttpRequest(
              HttpMethods.POST,
              "url",
              entity = HttpEntity(ContentTypes.`application/json`, "somequery".getBytes())
            ).withHeaders(RawHeader("X-Access-Token", "access token"))
          )

          futureResponse.map {
            res =>
              res.entity.dataBytes
                .map(convertToLong) // convert to long/int
                .grouped(2) // group two elments together
                .map(getRelation)// do some transform
                .runWith(someSink) // write to sink

          }

как мы можем преобразовать ByteString в Long вышепоток

1 Ответ

0 голосов
/ 15 января 2019

Напишите функцию, которая принимает ByteString и возвращает параметр Long ByteString => Option [Long]

def toLong(x: ByteString): Option[Long] = {
 try{
     Some(x.decodeString("UTF-8").toLong)
     } catch {
      case e: Exception => None 
    }
}
...