HttpClient - multipart/form-dataを用いた通信Advertisementmultipart/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コレクションギャラリー サイト検索Y!ログール |