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


相关推荐

  • 项目管理书籍推荐「建议收藏」

    项目管理书籍推荐「建议收藏」人人都是产品经理作为一名北漂,我的同事郝文鹏曾经总结过一些自己的经验,现无私分享出来,希望能帮到你:IT项目管理作为项目管理的子集,建议先看一些项目管理的书籍作为基础。基础类:《项目管理:计划.进

    2022年8月4日
  • PHP 正则表达式匹配函数 preg_match 与 preg_match_all

    PHP 正则表达式匹配函数 preg_match 与 preg_match_all

    2021年10月12日
  • 3.20 DAY3[通俗易懂]

    3.20 DAY3[通俗易懂]1.msg=’我叫%s,我看着像%r’%(‘太白’,’郭德纲’)print(msg)我叫太白,我看着像’郭德纲’句中出现引号,把%s替换成%r,可以打印出原来样式2.ASCII8位字节英文字母,数字,特殊字符unicode:万国码  python2:unicode默认是2个字节表示一个字符  python3:unicode统一是4个字节表示一个字符    创建初期16位字…

    2022年9月25日
  • 苹果Mac允许安装未知来源的应用「建议收藏」

    苹果Mac允许安装未知来源的应用「建议收藏」打开终端,输入命令密码是你的开机密码允许安装未知来源的应用允许sudospctl–master-disable不允许sudospctl–master-enable

    2022年10月22日
  • django分页器的用法_SQL分页

    django分页器的用法_SQL分页前言当后台返回的数据过多时,我们就要配置分页器,比如一页最多只能展示10条等等,drf中默认配置了3个分页面PageNumberPagination:基础分页器,性能略差LimitOffsetP

    2022年7月31日
  • pycharm配置tensorflow环境_python3.6对应的tensorflow版本

    pycharm配置tensorflow环境_python3.6对应的tensorflow版本说明:如果只是为了入门学习TensorFlow框架,个人觉得,没必要上来就整GPU版本(主要是那个太复杂,安装真让人劝退),所以本文记录的是直接在pycharm里安装tensorflow,并运行demo。安装3.5或3.6版本的python,3.7及以上的版本貌似还不支持TensorFlow,博主用的是3.6.8版本,特别注意python还要求得是64位的,否则后面安装TensorFlow会…

    2022年8月29日

发表回复

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

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