使用HttpClient4实现文件上传请求的发送,服务器端以MultipartFile形式接收(附依赖jar包地址)

使用HttpClient4实现文件上传请求的发送,服务器端以MultipartFile形式接收(附依赖jar包地址)今天学习使用了HttpClient4.2向服务端发送上传文件的请求,由于服务器端以MultipartFile形式接收,查询资料后决定使用HttpClient4.2实现,以下是实现代码(仅作测试使用):publicvoidtesttaskPost()throwsException{HttpClienthttpclient=newDefaultHttpClien

大家好,又见面了,我是你们的朋友全栈君。

今天学习使用了HttpClient4.2向服务端发送上传文件的post请求,由于服务器端采用MultipartFile形式接收,查询资料后决定使用HttpClient4.2实现,以下是实现代码(仅作测试使用):

   public void testtaskPost()throws  Exception{
        HttpClient httpclient = new DefaultHttpClient();
        try {
            //新建一个httpclient Post 请求
            HttpPost httppost = new 
            HttpPost("http://127.0.0.1:8889/taskmanagement/task");
            //由于只是测试使用 这里的路径对应本地文件的物理路径
            FileBody bin = new FileBody(new File("E://2017//1.doc"));
            File myfile = new File("E://2017//1.doc");
            long size  = myfile.length();
            //向MultipartEntity添加必要的数据
            StringBody comment = new StringBody("1.doc", 
            Charset.forName("UTF-8"));
            MultipartEntity reqEntity = new MultipartEntity();
            reqEntity.addPart("file",bin);//file为请求后台的Fileupload参数
            reqEntity.addPart("filename",comment);//请求后台Fileupload的参数
            httppost.setEntity(reqEntity);
            //这里是后台接收文件的接口需要的参数,根据接口文档需要放在http请求的请求头
            String taskid ="919894d9-ea5a-4f6a-8edd-b14ef3b6f104";
            httppost.setHeader("task-id",taskid);
            String fileid = UUID.randomUUID().toString();
            httppost.setHeader("file-id",fileid);
            httppost.setHeader("file-name","1.doc");
            httppost.setHeader("file-size",String.valueOf(size));
            httppost.setHeader("total", String.valueOf(1));
            httppost.setHeader("index",String.valueOf(1));

            HttpResponse response = httpclient.execute(httppost);
            int statusCode = response.getStatusLine().getStatusCode();
            if(statusCode == HttpStatus.SC_OK){
                System.out.println("服务器正常响应.....");
                HttpEntity resEntity = response.getEntity();
                System.out.println(
                //httpclient自带的工具类读取返回数据
                EntityUtils.toString(resEntity));
                System.out.println( resEntity.getContent());
                EntityUtils.consume( resEntity);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                httpclient.getConnectionManager().shutdown();
            } catch (Exception ignore) {
            }
        }
    }

此段代码所需依赖包下载地址(免积分的):http://download.csdn.net/detail/coding13/9772027

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163265.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python3换行符_python的换行符

    python3换行符_python的换行符广告关闭提供包括云服务器,云数据库在内的50+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。我想匹配以下内容:参考编号8号长任何角色,任何次数新队任何角色,任何次数新队任何角色,任何次数新队任何角色,任何次数新队任何角色,任何次数我的python代码是:forminre.findall({8}.*n.*n.*n.*n.*,l,re.dot…

    2022年5月23日
    71
  • springboot整合了哪些框架_框架java

    springboot整合了哪些框架_框架java目录1.SpringBoot框架说明1.1添加pom文件依赖1.2主启动类2.SSM框架整合2.2添加依赖2.3编辑UserController2.4编辑UserService接口及实现类2.5编辑UserMapper接口及Mapper映射文件2.7Mapper注入报错解决方案​​​​​​​1.SpringBoot框架说明理解:传统框架在使用时,特别的繁琐Spring/SpringMVC/Mybatis在使用时需要……

    2022年8月20日
    9
  • Matlab画三维图_读书笔记图画

    Matlab画三维图_读书笔记图画plot3基本的三维曲线图绘制plot3(x,y,z),x,y,z均为相同长度的向量,会得到三个向量相同下标构成的的三维坐标(xi,yi,zi)(i=1~n)连的曲线plot3(X,Y,Z),X,Y,Z均为相同大小的矩阵,均为m*n的矩阵时,plot3命令将绘得m条曲线,每条曲线均为X,Y,Z列向量为(x,y,z)坐标值的曲线例三维圆柱形螺旋线,x,y,z均为相同长度的向量cl

    2022年10月11日
    2
  • javascript正则表达式 教程_js正则表达式匹配字符串

    javascript正则表达式 教程_js正则表达式匹配字符串JavaScript正则表达式的模式匹配引言正文一、正则表达式定义引言其实我写这篇文章的话,主要是想自己重新复习一遍正则表达式。我们也知道正则表达式在很多语言中都是通用的,所以学好这个好处很多。接下来,就跟我一起来学习一下正则表达式,从0到入门吧。正文一、正则表达式定义正则表达式(regularexpression)是一个描述字符模式的对象,简单点来讲就是通过正则表达式规定的模式,…

    2026年2月1日
    4
  • efishell无法开机shell_efishell 开机出现efi shell卡住不动了解决方法全集「建议收藏」

    efishell无法开机shell_efishell 开机出现efi shell卡住不动了解决方法全集「建议收藏」[文章导读]最近有很多网友问我,为什么我的电脑开机后出现efishell提示进不了系统,开机出现efishell提示时,一般是由于第一启动项设置的是efishell启动的,有的网友告诉我,我第一启动项明明设置的是硬盘启动,当然还有一种情况就是前面的启动项都无法加载,然后按启动顺序启动,然后就启动到efishell了,出现这种情况一般就是系统引导破坏或是找不到引导项了。那么怎么找到原并解决…

    2022年7月24日
    39
  • android之解析包时出现错误(二)

    为什么是二呢,之前遇到过一次了,详见http://blog.csdn.net/jason0539/article/details/12222173这次的原因不同,再记录下public class DownloadTask { /** * @param path下载地址 * @param filePath存储路径 * @param progressDialog进度

    2022年3月11日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号