2
我有以下方法,它返回一個Future[Source[List[String]]]
(前兩個CSV文件的行):如何使用akka-http將未來[源] [[]]編組爲一個HttpResponse?
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)
}
}
返回Future
被傳遞給complete
,其編組到陣列的JSON陣列使用:
implicit val jsonStreamingSupport: JsonEntityStreamingSupport = EntityStreamingSupport.json()
不過,我想檢查response
和返回不同的HttpResponse
如果它不是一個200好像要做到這一點是將Future[Source[...]]
元帥在這一個HttpResponse
的最佳方式方法,然後返回類型爲HttpResponse
。
我該怎麼做?或者,還有更好的方法?