1. ホーム
  2. http

Scala で HTTP リクエストを行う

2023-09-03 03:24:36

質問

ScalaでXMLを返すウェブサービスに簡単なPOSTリクエストを発行しようとしています。

それは ディスパッチ がこのタスクに使われる標準ライブラリだと思われますが、それに関するドキュメントが見当たりません。上にリンクしたメインサイトでは、プロミスとは何か、非同期プログラミングの方法は長々と説明されていますが、実際にAPIのドキュメントがあるわけではありません。あるのは 周期表 - がありますが、これは何をすべきか既に知っていて、不可解な構文を思い出す必要がある人にしか役に立たないと思われます。

また、どうやら Scalaz には HTTP の機能もあるようですが、それに関するドキュメントも見当たりません。

どのように解決するのですか?

私は以下のように使っています。 https://github.com/scalaj/scalaj-http .

以下は簡単なGETリクエストです。

import scalaj.http.{Http, HttpOptions}

Http("http://example.com/search").param("q", "monkeys").asString

とPOSTの例を示します。

val result = Http("http://example.com/url").postData("""{"id":"12","json":"data"}""")
  .header("Content-Type", "application/json")
  .header("Charset", "UTF-8")
  .option(HttpOptions.readTimeout(10000)).asString

Scalaj HTTPはSBTで利用可能です。

libraryDependencies += "org.scalaj" % "scalaj-http_2.11" % "2.3.0"