Основное использование Dispatch 0.9

Я хочу POST к URL-адресу, устанавливая параметры запроса и заголовки и передавая необработанную строку в теле. Затем я хочу сделать запрос и получить строку вывода, чтобы я мог преобразовать ее в JSON. Я также хочу, чтобы обработка исключений реагировала на различные виды ошибок (и обрабатывала перенаправления)

Но Dispatch 0.9 плохо документирован, ломает API с документированными версиями и очень причудлив, поэтому я не могу придумать полное решение. яutterly stuckследовательно, я прошу много.

Это все, что я могу придумать, но установка параметров запроса странная:

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).