scala
import akka.actor.ActorSystem
import akka.http.scaladsl.Http
import akka.http.scaladsl.model.HttpRequest
import akka.stream.ActorMaterializer
object HttpClientExample extends App {
implicit val system = ActorSystem()
implicit val materializer = ActorMaterializer()
import system.dispatcher
val responseFut = Http().singleRequest(HttpRequest(uri = "https://api.example.com"))
responseFut.foreach { response =>
val entityFut = response.entity.toStrict(5000)
entityFut.foreach { entity =>
val responseBody = entity.data.utf8String
println(responseBody)
system.terminate()
}
}
}
scala
import akka.actor.ActorSystem
import play.api.libs.ws.ahc.StandaloneAhcWSClient
object HttpClientExample extends App {
implicit val system = ActorSystem()
import system.dispatcher
val client = StandaloneAhcWSClient()
val responseFut = client.url("https://api.example.com").get()
responseFut.map { response =>
val responseBody = response.body
println(responseBody)
client.close()
system.terminate()
}
}
scala
import org.apache.hc.client5.http.impl.classic.{CloseableHttpClient, HttpClientBuilder}
import org.apache.hc.core5.http.{HttpRequest, HttpResponse}
import org.apache.hc.core5.util.Timeout
object HttpClientExample extends App {
val client: CloseableHttpClient = HttpClientBuilder.create().build()
val request: HttpRequest = new HttpGet("https://api.example.com")
val response: HttpResponse = client.execute(request, Timeout.DEFAULT)
val responseBody = EntityUtils.toString(response.getEntity)
println(responseBody)
client.close()
}
scala
import io.vertx.core.Vertx
import io.vertx.core.http.HttpClient
import io.vertx.core.http.HttpMethod
object HttpClientExample extends App {
val vertx = Vertx.vertx()
val client = vertx.createHttpClient()
client.request(HttpMethod.GET, "https://api.example.com")
.compose(request => request.send().compose(response => {
val responseBody = response.bodyAsString()
println(responseBody)
vertx.close()
}))
}