• 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小威

  • 相关阅读:
    Promise是如何实现异步编程的?
    js 检测元素是否被覆盖
    antd upload组件结合七牛云上传图片
    webpack原理分析之编写一个打包器
    docker命令构建Java程序镜像,并运行它
    新建mysql docker指定版本
    spring官方文档网址
    rabbitmq用x-delayed-message的exchange特性支持消息延迟消费
    解决Can't open /usr/lib/grub/update-grub_lib
    java8-强大的Stream API
  • 原文地址:https://www.cnblogs.com/zivxiaowei/p/3243541.html
Copyright © 2020-2023  润新知