httpClient 使用multipart/form-data 类型上传文件及表单
2017-02-22 10:43
1091 查看
终于找到一个可以用的
public static void post() throws ClientProtocolException, IOException {
// Proxy p=new Proxy();
// p.setHost("192.168.1.153");
// p.setPort("8888");
HttpClient httpclient = new DefaultHttpClient();
// HttpHost proxy = new HttpHost(p.getHost(), Integer.valueOf(p.getPort()), "http");
// httpclient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);
//请求路径
HttpPost post = new HttpPost("xxxxx");
//添加header头信息
post.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)");
//注 这里一定不能添加 content-Type:multipart/form-data 属性 因为这里面有个boundary参数属性是不可控的。这个值是由浏览器生成的。如果强行指明和可能
//导致边界值不一致 就会请求失败 详细参见 http://blog.csdn.net/xiaojianpitt/article/details/6856536
// post.setHeader("content-Type", "multipart/form-data");
post.setHeader("Host", "****");
post.setHeader("Accept-Encoding","gzip");
post.setHeader("charset", "utf-8");
FileBody fileBody = new FileBody(new File("xxxx"),"image/pjpeg","utf-8");
MultipartEntity entity = new MultipartEntity();
//添加消息体信息
entity.addPart("xxxx", new StringBody("xxx",Charset.forName("utf-8")));
entity.addPart("imagefile", fileBody);
post.setEntity(entity);
HttpResponse response = httpclient.execute(post);
if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){
HttpEntity entitys = response.getEntity();
if (entity != null) {
System.out.println(EntityUtils.toString(entitys));
}
}
httpclient.getConnectionManager().shutdown();
}
终于找到一个可以用的
public static void post() throws ClientProtocolException, IOException {
// Proxy p=new Proxy();
// p.setHost("192.168.1.153");
// p.setPort("8888");
HttpClient httpclient = new DefaultHttpClient();
// HttpHost proxy = new HttpHost(p.getHost(), Integer.valueOf(p.getPort()), "http");
// httpclient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);
//请求路径
HttpPost post = new HttpPost("xxxxx");
//添加header头信息
post.setHeader("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)");
//注 这里一定不能添加 content-Type:multipart/form-data 属性 因为这里面有个boundary参数属性是不可控的。这个值是由浏览器生成的。如果强行指明和可能
//导致边界值不一致 就会请求失败 详细参见 http://blog.csdn.net/xiaojianpitt/article/details/6856536
// post.setHeader("content-Type", "multipart/form-data");
post.setHeader("Host", "****");
post.setHeader("Accept-Encoding","gzip");
post.setHeader("charset", "utf-8");
FileBody fileBody = new FileBody(new File("xxxx"),"image/pjpeg","utf-8");
MultipartEntity entity = new MultipartEntity();
//添加消息体信息
entity.addPart("xxxx", new StringBody("xxx",Charset.forName("utf-8")));
entity.addPart("imagefile", fileBody);
post.setEntity(entity);
HttpResponse response = httpclient.execute(post);
if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){
HttpEntity entitys = response.getEntity();
if (entity != null) {
System.out.println(EntityUtils.toString(entitys));
}
}
httpclient.getConnectionManager().shutdown();
}
相关文章推荐
- httpClient 使用multipart/form-data 类型上传文件及表单
- 【MIME类型简述】为什么上传文件的表单里面要加一个属性enctype=multipart/form-data?
- 如何使用multipart/form-data格式上传文件
- 简单解决 multipart/form-data 文件上传表单中 传递参数无法获取的办法! (解决办法:动态更改表单提交URL)
- 如何使用multipart/form-data格式上传文件
- 当form里增加enctype="multipart/form-data"时,上传文件与其他表单数据的研究
- 如何使用multipart/form-data格式上传文件
- enctype="multipart/form-data"表单上传文件 (转)
- Android使用MultipartEntityBuilder实现类似form表单提交方式的文件上传
- 为什么上传文件的表单里面要加一个属性ENCTYPE=MULTIPART/FORM-DATA?
- 【asp】web做文件上传,需要在表单用上 <form Enctype="multipart/form-data"/>
- 上传文件form表单enctype="multipart/form-data"传值解决办法(代原代码)
- 理解HTTP消息头 (五)——使用multipart/form-data上传文件
- [转载红鱼儿]Delphi实现微信开发(3)如何使用multipart/form-data格式上传文件
- WEB API 使用MultipartFormDataStreamProvider上传文件
- 如何使用multipart/form-data格式上传文件
- 上传文件form表单enctype="multipart/form-data"传值解决办法(代原代码)
- 实现使用HTTP协议发送multipart/form-data类型的HTTP表单
- 如何使用multipart/form-data格式上传文件
- asp.net文件上传用到html的file控件,在使用母版页Master,更改form的Enctype=multipart/form-data的方法