sanskrit_coders
package sanskrit_coders
- Alphabetic
- Public
- All
Value Members
-
object
RichHttpClient
A client robust to redirects and such.
A client robust to redirects and such. Copied and adapted from https://github.com/akka/akka-http/issues/195
Usage: call httpClientWithRedirect(). implicit val actorMaterializer = ActorMaterializer() implicit val executionContext = system.dispatcher private val simpleClient: HttpRequest => Future[HttpResponse] = Http(context.system).singleRequest(_: HttpRequest) private val redirectingClient: HttpRequest => Future[HttpResponse] = RichHttpClient.httpClientWithRedirect(simpleClient) RichHttpClient.httpResponseToString(redirectingClient(HttpRequest(uri = uri))).map(responseString => { log.debug(responseString) val archiveItem = jsonHelper.fromString[ItemInfo](responseString) archiveItem.toPodcast(filePattern = podcastRequest.filePattern, useArchiveOrder = podcastRequest.useArchiveOrder, podcast = podcastRequest.podcastTemplate) }) *
To dump to file: val httpResponseFuture = redirectingClient(HttpRequest(uri = dict.dictTarUrl)) * val destinationPath = Paths.get(dict.destinationFolder, dict.dictTarUrl.split("/").last) assert(new java.io.File(dict.destinationFolder).mkdirs()) val fileSink = FileIO.toPath(destinationPath) val ioResultFuture = httpResponseFuture.flatMap(response => { response.entity.dataBytes.runWith(fileSink) })
- object Utils