使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VMware12安装_vmwarewin10安装

    VMware12安装_vmwarewin10安装vmware10安装fedora1232位安装这个链接安装可行https://blog.csdn.net/Babsir/article/details/78014042

    2022年9月16日
    0
  • 损失函数loss大大总结_logloss 损失函数

    损失函数loss大大总结_logloss 损失函数1.损失函数:损失函数(lossfunction)是用来评测模型的预测值f(x)与真实值Y的相似程度,损失函数越小,就代表模型的鲁棒性越好,损失函数指导模型学习。根据损失函数来做反向传播修改模型参数。机器学习的目的就是学习一组参数,使得预测值与真值无限接近。2.softmaxloss:它是损失函数的一种,是softmax和cross-entropyloss组合而成的损失函数。先看softmax,其函数形式如下:其中zj就是某个神经网络全连…

    2022年4月19日
    114
  • java 工作流框架_java工作流是什么?哪些工作流框架比较好?

    java 工作流框架_java工作流是什么?哪些工作流框架比较好?由于java编程语言本身的强大性,导致学习它需要掌握极其庞大的知识群。今天就带大家了解一下什么是java的工作流,以及为大家介绍一下哪些工作流框架比较好。简单来说,java工作流就是一个基于java开发的流程框架,一般情况下,好的工作流在开发时是不需要写代码的,直接配置就可以了。它一般在OA系统应用的频率比较高。那么哪些工作流框架比较好呢?首先Activiti、JBPM、JBossSeam、XJ…

    2022年5月16日
    44
  • matlab的插值方法[通俗易懂]

    matlab的插值方法[通俗易懂]1.Lagrange插值插值是在已知数据之间寻找估计值的过程。在信号处理和图像处理中,插值极其常用。类型很多:比如多项式插值,一、二、三维插值,样条插值等。方法介绍:对给定的n个插值点x1,x2,⋯,xnx1,x2,⋯,xn{x_1},{x_2},\cdots,{x_n}及对应的函数值y1,y2,⋯,yny1,y2,⋯,yn{y_1},{y_2},\cdots,{y_n}…

    2022年5月4日
    286
  • VC编程来操纵Office[通俗易懂]

    VC编程来操纵Office[通俗易懂]使用VC编程来操纵Office。你可以实现诸如:Word文件打印、传送数据到Word文档、发送E-MAIL、自动产生表格、Excel数据统计、圆饼图,直方图显示、自动报表生成、播放幻灯、doc,txt,HTML,rtf文件转换、中文简繁体转换、拼音或笔画排序……只要是Office能够实现的功能,都可以在你写的程序中调用。仔细阅读下面的说明,并下载源文件进行参考,你就可以一步一步地掌握这个技

    2022年6月16日
    57
  • webpack版本不兼容_怎么安装webpack在其他盘

    webpack版本不兼容_怎么安装webpack在其他盘运行webpack时报错:Cannotfindmodule’webpack/bin/config-yargs’Thisisprobablynotaproblemwithnpm.Thereislikelyadditionalloggingoutputabove.可能是版本兼容问题,更正后的版本:”devDependencies”:{“webpack”:”^4.39.2″,”webpack-cli”:”^3.3.12″,”webp

    2022年8月9日
    5

发表回复

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

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