HttpClientでのファイルアップロード

Commons HttpClientを使ってのmultipart/form-dataでのファイルアップロードする処理をしたときのメモです。

参考

とりあえず↓のサイトを参考にしました。これでだいたいOKです。

メモ

上記の参考にしたサイトのサンプルソースです。

        PostMethod post = new PostMethod ("http://localhost/DummyProject/");
        File file = new File("c:\\test.csv");

        Part[] parts = {new FilePart(file.getName(), file)};
        post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams()));
  • FilePartのコンストラクタの第一引数がパラメータ名(HTMLのname="hoge"相当)になってます。
  • 複数のファイルを追加する場合には、FilePartを増やします。
  • ファイル以外のパラメータは、StringPartを使います。

課題

ファイル名が日本語の場合、サーバ側で文字化けしてしまっています。どこでcharsetを指定すれば有効になるのかは調査中です。。
- FilePartのコンストラクタでcharsetを指定?
- post.getParams().setContentCharset("〜")で指定?
- post.setRequestHeader("〜")で指定?