http://blog.csdn.net/sxwyf248/article/details/7799785
之前写了一个Struts2文件上传的Action,可以编写一个jsp上传页面来测试这个Action,我们也可以编写一个简单的客户端来测试上传的Action。利用HttpClient能够方便的实现这个效果,具体代码如下:
TestUpload.java
- package com.figo.test;
- import java.io.File;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- import org.apache.http.HttpStatus;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.entity.mime.MultipartEntity;
- import org.apache.http.entity.mime.content.FileBody;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.util.EntityUtils;
- public class TestUpload {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- HttpClient httpclient = new DefaultHttpClient();
- try {
- HttpPost httppost = new HttpPost(
- "http://localhost:8080/Upload/fileUpload!execute");
- FileBody bin = new FileBody(new File("D:\\Wangyf15\\sign.txt"));
- MultipartEntity reqEntity = new MultipartEntity();
- reqEntity.addPart("upload", bin);// upload为请求后台的File upload属性
- httppost.setEntity(reqEntity);
- HttpResponse response = httpclient.execute(httppost);
- int statusCode = response.getStatusLine().getStatusCode();
- if (statusCode == HttpStatus.SC_OK) {
- HttpEntity resEntity = response.getEntity();
- // httpclient自带的工具类读取返回数据
- System.out.println(EntityUtils.toString(resEntity));
- EntityUtils.consume(resEntity);
- }
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- httpclient.getConnectionManager().shutdown();
- } catch (Exception ignore) {
- }
- }
- }
- }