使用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)
上一篇 2022年7月22日 上午7:16
下一篇 2022年7月22日 上午7:16


相关推荐

  • linux chmod详解

    linux chmod详解文件的权限表示可以通过 ll 命令展示文件的信息 chmod 文件权限 chmod 命令 chmod changemode 命令是控制用户对文件的权限的命令 Linux Unix 的文件调用权限分为三级 文件所有者 Owner 用户组 Group 其它用户 OtherUsers 语法 chmodmodefil 其中 mode 可以设定为字符串 ugoa rwx 其中 ugoa 代表的是 u

    2026年3月19日
    3
  • forEach的三种用法

    forEach的三种用法forEach 的三种用法 1 直接 forEach 遍历 for inti list System out println i 2 用 system out println list forEach System out println 3 有 map 集合键值对的情况下 set forEach key gt System out

    2026年3月16日
    3
  • 取反!和按位取反~的区别[通俗易懂]

    取反!和按位取反~的区别[通俗易懂]按位取反“~”:按位取反1变0,0变1逻辑非“!”:逻辑取反,false变true,true变false,在C中,只要不是0就是真——————————————————————————————————————————

    2022年8月15日
    9
  • VLAD和MultiVLAD

    VLAD和MultiVLADVLAD 原理 1 原始的 VLAD 设有一个特征数据集为 每个特征向量 xi x i 都是 dd 维的向量 比如提取许多幅图像的 SIFT 特征 将这些 SIFT 特征组成上述集合 这里讲的词袋模型并不关心各幅图像中 SIFT 特征的个数及顺序 1 聚类 clustering 首先采用 K means 等聚类算法将 n 个 d 维的特征聚类成 k 类 保存得到的类中心向量集合 和每个特征向量 x i 所在的类别编号 assignme

    2026年3月17日
    2
  • php解析xml,并将xml转换为层级数组

    php解析xml,并将xml转换为层级数组

    2021年9月12日
    63
  • 托管DirectX,从MDX到SlimDX的转换(转)

    托管DirectX,从MDX到SlimDX的转换(转)转自 http gis4all ru zh CN net managed directx 开始迁移到托管 DirectXSlimD 框架的 例如 MDX 应用的帕特里克 Murrisa 地形的浏览器 在托管 DirectX 代码所示 到新的代码 与 SlimDX 评论的形式 MDX 迁移项目中 SlimDX 图书馆设置 SlimDX 下载并安装 2010 年 2 月 SlimDXSD

    2026年3月17日
    2

发表回复

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

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