@634

HttpClient - multipart/form-dataを用いた通信

Advertisement

multipart/form-dataエンコーディングでデータを送信

multipart/form-dataは、フォームから返される値の形式のことで、RFC2388和訳)で規定されている。
HttpClientでmultipart/form-dataを表現するためには、MultipartRequestEntityクラスを利用して、リクエストにデータを格納すればよい。
なお、HttpClient2.Xで利用されていたMultipartPostMethodクラスの利用は、3.0から非推奨になっている。
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;

public class MultipartPostXML {
    public static void main(String[] args) throws Exception {
        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()));
        post.setRequestHeader("Content-type", "multipart/form-data; charset=ISO-8859-1");
        HttpClient httpclient = new HttpClient();
        try {
            int result = httpclient.executeMethod(post);
            System.out.println(result);
            System.out.println(post.getName());
            System.out.println(post.getStatusText());
            System.out.println(post.getPath());
            System.out.println(post.getResponseBodyAsString());
        } finally {
            post.releaseConnection();
        }
    }
}

結果
200
POST
OK
/DummyProject
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Dummy Index</title>
</head>
<body>
Hello.
</body>
</html>

Advertisement

ショートカット

634
このカテゴリのトップページに戻る
634labs
   UIコレクションギャラリー

サイト検索

Google

Web サイト内

Y!ログール