使用httpclient模拟表单提交

文件类型使用FileBody,字符串类型使用StringBody,其它的还有ByteArrayBody,InputStreamBody.

 

 

package com.gary.test.upload;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
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.entity.mime.content.StringBody;
import org.apache.http.impl.client.DefaultHttpClient;

/**
 * Client
 * @author gary
 *
 */
public class Client {

	public static void main(String[] args) throws Exception {
		String url = "http://localhost:8080/ssh/manage/Disk_add.action";
		String filePath = "test.mp3";
		
		HttpClient httpClient = new DefaultHttpClient();
		HttpPost httpPost = new HttpPost(url);

		MultipartEntity reqEntity = new MultipartEntity();
		httpPost.setEntity(reqEntity);

		/**	file param name */
		FileBody bin = new FileBody(new File(filePath));
		reqEntity.addPart("Filedata", bin);

		/** String param name */
		StringBody userId = new StringBody("1");
		reqEntity.addPart("userId", userId);
		
		System.out.println("executing: " + httpPost.getRequestLine());
		
		HttpResponse response = httpClient.execute(httpPost);
		HttpEntity responseEntity = response.getEntity();

		System.out.println("----------------------------------------");
		System.out.println(response.getStatusLine());

		if (responseEntity != null){
			System.out.println("Response content: "
					+ inputStream2String(responseEntity.getContent()));
		}

		httpClient.getConnectionManager().shutdown();
	}

	public static String inputStream2String(InputStream is) throws IOException {
		ByteArrayOutputStream baos = new ByteArrayOutputStream();
		int i = -1;
		while ((i = is.read()) != -1) {
			baos.write(i);
		}
		return baos.toString();
	}

}

 

Client运行结果

 

executing: POST http://localhost:8080/ssh/manage/Disk_add.action HTTP/1.1

----------------------------------------

HTTP/1.1 200 OK

Response content: 上传成功

 

Server运行结果

 

2011-01-31 21:59:33 DEBUG [ssh.action.DiskAction.add(DiskAction.java:98)] - 成功

上传文件test.mp3到D:\AEclipse2\workspace\myeclipse\ssh\WebRoot\upload\netdisk129

64823729805uYix

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值