2
나는 Future[Source[List[String]]]
(CSV 파일의 처음 두 행) 반환 다음과 같은 방법이 있습니다 배열의 JSON 배열에 마샬링akka-http가있는 HttpResponse에 [Source [...]] Future를 마샬링하는 방법은 무엇입니까?
def get(url: String, charset: String, delimiter: Char, quote: Char, escape: Char) = {
val scanner = CsvParsing.lineScanner(
delimiter.toByte,
quote.toByte,
escape.toByte
)
val request = HttpRequest(GET, Uri(url)).withHeaders(`User-Agent`(UserAgent))
Http(system)
.singleRequest(request)
.map { response =>
response.entity.withoutSizeLimit.dataBytes
.viaMat(scanner)(Keep.left)
.map(row =>
row.map(bs =>
bs.decodeString(charset)
)
)
.take(2)
}
}
(가) complete
에 전달 Future
반환은 사용 :
HttpResponse
에
Future[Source[...]]
를 마샬링하는 것이 작업을 수행하는 가장 좋은 방법처럼 보인다 (200)가 아닌 경우
implicit val jsonStreamingSupport: JsonEntityStreamingSupport = EntityStreamingSupport.json()
그러나, 나는 response
를 검사하고 다른 HttpResponse
를 반환하고 싶습니다 메서드를 호출하고 반환 형식은 HttpResponse
이됩니다.
어떻게하면됩니까? 아니면 더 좋은 방법이 있습니까?