文件类型使用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
分享到:
相关推荐
Java模拟表单post提交 HttpClient,Java开发者常用利器
在微信支付接口文档也说明了,需要使用 multipart/form-data 的方式发送请求。.NET 提供了 MultipartFormDataContent 类型,帮助我们构建表单请求,故有以下代码: var form = new MultipartFormDataContent() { {...
本文主要介绍JAVA中利用HttpClient模拟POST表单操作,希望对大家有所帮助。
httpclient模拟浏览器中一个表单提交或者说异步提交的方法,返回通常为json或xml的格式,可以采用POST和GET传送并设置字符集以及超时控制。 URL暴露方式双方约定认证协议方法即可,另一种是获取cookie方式,但是...
1.6.2Post提交表单(模拟表单提交) /** * post方式提交表单(模拟用户登录请求) */ public void postForm() { // 创建默认的httpClient实例. CloseableHttpClient httpclient = HttpClients.createDefault...
HttpClient学习笔记 模拟测试浏览器表单提交
selenium自定义封装支持类似httpclient 的post提交方式,并获取返回值,对于获取异步请求中返回的json对象值很有用。
主要有: 1.模拟表单提交功能 2.文件上传功能 3.微信文件下载功能 4.代理服务器全局开启和局部开启功能
BrowserKit组件 BrowserKit组件模拟了Web浏览器的行为,使您可以发出请求,单击链接并以编程方式提交表单。 该组件附带一个具体的实现,该实现使用HttpClient组件发出实际的HTTP请求。 资源资源 并在
使用Spring Boot内置的`RestTemplate`来实现。以下是一个基于`RestTemplate`转发文件上传请求到目标服务的示例 主要运用了以下技术: 1. Spring MVC框架 构建Web应用程序 2. Apache HttpClient库 模拟请求API接口 ...