Gigahorse は、Scala のための HTTP クライアントで複数のバックエンド実装をサポートする。 内部実装として Apache HTTP HttpAsyncClient か Async Http Client か Square OkHttp か Akka HTTP から選ぶことができる。
Apache HTTP HttpAsyncClient を使う場合:
libraryDependencies += "com.eed3si9n" %% "gigahorse-apache-http" % "0.7.0"
Async HTTP Client を使う場合:
libraryDependencies += "com.eed3si9n" %% "gigahorse-asynchttpclient" % "0.7.0"
Square OkHttp 3.x を使う場合:
libraryDependencies += "com.eed3si9n" %% "gigahorse-okhttp" % "0.7.0"
Akka HTTP は現段階では実験的サポート:
libraryDependencies += "com.eed3si9n" %% "gigahorse-akka-http" % "0.7.0"
Apache v2
Gigahorse を使った簡単な GET 呼び出しの例をみてみよう:
scala> import gigahorse._, support.apachehttp.Gigahorse
scala> import scala.concurrent._, duration._
scala> val http = Gigahorse.http(Gigahorse.config)
scala> val r = Gigahorse.url("https://api.duckduckgo.com").get.
addQueryString(
"q" -> "1 + 1"
)
scala> val f = http.run(r, Gigahorse.asString andThen {_.take(60)})
scala> Await.result(f, 120.seconds)
scala> http.close()