libraryDependencies += "com.typesafe.akka" %% "akka-http" % "10.2.4"
scala
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model._
import akka.stream.ActorMaterializer
import scala.concurrent.Future
object HttpClientExample extends App {
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
implicit val executionContext = system.dispatcher
val request: HttpRequest = HttpRequest(uri = "https://api.example.com/users")
val response: Future[HttpResponse] = Http().singleRequest(request)
response.flatMap { res =>
res.status match {
case StatusCodes.OK =>
res.entity.toStrict(5000).map(_.data.utf8String)
.map { responseBody =>
println(s"Response body: $responseBody")
}
case _ =>
res.discardEntityBytes()
Future.failed(new RuntimeException(s"Request failed with status code ${res.status}"))
}
}.onComplete { _ =>
system.terminate()
}
}