URLにPOSTし、クエリパラメータとヘッダーを設定し、本文に生の文字列を渡したい。次に、リクエストを実行して出力文字列を取得し、JSONに変換できるようにします。また、さまざまな種類のエラーに応答する(およびリダイレクトを処理する)例外処理が必要です
しかし、Dispatch 0.9は十分に文書化されておらず、文書化されたバージョンでAPIを壊し、非常に風変わりなので、完全な解決策を思い付くことができません。私は完全に立ち往生しているので、たくさんお願いします。
これが私が思いつくことができるすべてですが、クエリパラメータの設定は奇妙です:
val solr = host("localhost", 8983)
val req = solr / "update" / "json"
setQueryParameters( Map( "commit" -> "true"))
setHeader( "Content-type", "application/json")
setBody( a)
しかし、クエリパラメータを設定すると、難しいエラーが発生します。
<console>:14: error: type mismatch;
found : scala.collection.immutable.Map[java.lang.String,java.lang.String]
required: com.ning.http.client.FluentStringsMap
val req = solr / "update" / "json" setQueryParameters( Map( "commit" -> "true"))
HTTPS、リダイレクト、クエリパラメータ、ヘッダー、POSTメソッドなどのリクエストを完全に設定するのを手伝ってください。
また、リクエストを実行して本文(およびヘッダー)を取得し、応答コード(200、301、302、400、500)に応じて分岐するのを(同期して、そのようにしたいと思います)支援します。