zoukankan      html  css  js  c++  java
  • 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小威

  • 相关阅读:
    二项队列
    左式堆
    优先级队列
    web.xml配置文件中<async-supported>true</async-supported>报错的解决方案
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
    spring四种依赖注入方式
    Spring @Resource、@Autowired、@Qualifier的注解注入及区别
    CXF自动生成客户端
    maven update 以后报错。
    Mavne + Spring整合CXF
  • 原文地址:https://www.cnblogs.com/zivxiaowei/p/3243541.html
Copyright © 2011-2022 走看看