SimpleHttpClientを改良してみた

ヘッダとかも指定できるようにしてみました。ソースコードこちらです。
url以外の引数は省略可能で、POSTの場合もメソッドがpostメソッドになるだけで使い方は同じです。また、HttpClientのインスタンスを使いまわせるようにConnectionManagerのシャットダウンをcloseメソッドの中で行うようにしました。なので以下のようにusingの中で使うような感じになっています。これでセッション維持のためにクッキーを使う必要のある場合などにも対応できるはず…。

using(new SimpleHttpClient()){ client =>
  val content: String = client.get(
    url     = "http://localhost:8080/",
    params  = Map("key" -> "value"),
    headers = Map("key" -> "value"),
    encode  = "UTF-8",
    responseHandler = { r =>
      new String(EntityUtils.toByteArray(r.getEntity()), "UTF-8")
    }
  )
}

一応プロキシも指定できるようにしてみました。以下のようにコンストラクタでプロキシサーバのホスト名とポート番号を指定します。

using(new SimpleHttpClient("プロキシのホスト名:ポート")){ 
  client => ...
}

プロキシ認証にはまだ対応してないです。ただ、細かいことをやりだすといろいろ面倒そうなのでコンストラクタにHttpClientをセットアップするための関数を渡せるようにして好きにいじれるよーという感じのほうがいいのかも…。