Httpclient 实现带参文件上传
这里直接贴出的是我封装好的doPostFile方法,httpclient 的版本是3.1。
public static String doPostFile(String url, Part[] parts){ String response = null; PostMethod postMethod = new PostMethod(url); try{ //设置请求实体 postMethod.setRequestEntity(new MultipartRequestEntity(parts,postMethod.getParams())); HttpClient client = new HttpClient(); //设置连接超时限度 client.getHttpConnectionManager().getParams().setConnectionTimeout(5000); client.executeMethod(postMethod); if(postMethod.getStatusCode() == HttpStatus.SC_OK){ response = new String(postMethod.getResponseBodyAsString().getBytes("utf-8")); } } catch(Exception e){ LOGGER.error("HttpServiceSender.doPostFile()",e.getMessage()); } finally { postMethod.releaseConnection(); } return response; }
调用此方法的代码,注意参数的传递方式
public String uploadImage(File file,String id,String name){ String result = null; try{ //文件part,new FilePart添加的是File类型的文件,后面StringPart则为字符串参数 Part[] parts = { new FilePart("file", file), new StringPart("id", id), new StringPart("id",name)}; result = HttpServiceSender.doPostFile(SERVER+"service/resource/upload",parts); }catch(Exception e){ Logger.error("ImageService.uploadImage()", e.getMessage()); } return result; }
作者:Ziv小威
出处:http://imziv.com/
关于作者:专注于Java技术的程序员一枚,此外对JS开发保持着较高的兴趣。爱好音乐,阅读,FM等等。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
如有问题,可以邮件:wewoor@foxmail.com
微博:Ziv小威