scala
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model._
import akka.stream.ActorMaterializer
import scala.concurrent.Future
import scala.util.{Failure, Success}
object HttpClientExample extends App {
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
implicit val executionContext = system.dispatcher
val httpClient = Http().outgoingConnection("api.example.com")
val request = HttpRequest(uri = "/endpoint")
val responseFuture: Future[HttpResponse] = httpClient.sendRequest(request)
responseFuture.onComplete {
case Success(response) =>
println(s"Response: ${response.status}")
response.entity.toStrict(5000).foreach { entity =>
println(s"Response body: ${entity.data.utf8String}")
}
system.terminate()
case Failure(ex) =>
println(s"Request failed: ${ex.getMessage}")
system.terminate()
}
}
scala
libraryDependencies += "com.typesafe.akka" %% "akka-http" % "10.2.4"
libraryDependencies += "com.typesafe.akka" %% "akka-stream" % "2.6.14"