用httpclient4.3 post方式推送文件到服务端  准备:httpclient-4.3.3.jar;httpcore-4.3.2.jar;httpmime-4.3.3.jar/*** 上传文件* @throws  ParseException* @throws  IOException*/
publicstaticvoidpostFile()throwsParseException, IOException{CloseableHttpClient httpClient = HttpClients.createDefault();try{// 要上传的文件的路径String filePath =newString("F:/pic/001.jpg");// 把一个普通参数和文件上传给下面这个地址 是一个servletHttpPost httpPost =newHttpPost("http://localhost:8080/xxx/xxx.action");// 把文件转换成流对象FileBodyFile file =newFile(filePath);FileBody bin =newFileBody(file); StringBody uploadFileName =newStringBody("把我修改成文件名称", ContentType.create("text/plain", Consts.UTF_8));//以浏览器兼容模式运行,防止文件名乱码。 HttpEntity reqEntity = MultipartEntityBuilder.create().setMode(HttpMultipartMode.BROWSER_COMPATIBLE).addPart("uploadFile", bin)//uploadFile对应服务端类的同名属性<File类型>.addPart("uploadFileName", uploadFileName)//uploadFileName对应服务端类的同名属性<String类型>.setCharset(CharsetUtils.get("UTF-8")).build();httpPost.setEntity(reqEntity);System.out.println("发起请求的页面地址 "+ httpPost.getRequestLine());// 发起请求 并返回请求的响应CloseableHttpResponse response = httpClient.execute(httpPost);try{System.out.println("----------------------------------------");// 打印响应状态
            System.out.println(response.getStatusLine());// 获取响应对象HttpEntity resEntity = response.getEntity();if(resEntity !=null) {// 打印响应长度System.out.println("Response content length: "+ resEntity.getContentLength());// 打印响应内容
                System.out.println(EntityUtils.toString(resEntity,Charset.forName("UTF-8")));}// 销毁
            EntityUtils.consume(resEntity);}finally{response.close();}}finally{httpClient.close();}
}/*** 下载文件* @param  url* @param  destFileName   xxx.jpg/xxx.png/xxx.txt* @throws  ClientProtocolException* @throws IOException*/
publicstaticvoidgetFile(String url, String destFileName)throwsClientProtocolException, IOException {// 生成一个httpclient对象CloseableHttpClient httpclient = HttpClients.createDefault();HttpGet httpget =newHttpGet(url);HttpResponse response = httpclient.execute(httpget);HttpEntity entity = response.getEntity();InputStream in = entity.getContent();File file =newFile(destFileName);try{FileOutputStream fout =newFileOutputStream(file);intl = -1;byte[] tmp =newbyte[1024];while((l = in.read(tmp)) != -1) {fout.write(tmp,0, l);// 注意这里如果用OutputStream.write(buff)的话,图片会失真,大家可以试试
        }fout.flush();fout.close();}finally{// 关闭低层流。
        in.close();}httpclient.close();
}

转载于:https://www.cnblogs.com/wuweidong/p/5953167.html

[转]httpclient 上传文件、下载文件相关推荐

  1. PB通过Http协议上传、下载文件

    PB通过Http协议上传.下载文件 PB自身也有http组件,但使用起来较为繁琐.VDN作者将http功能通过API的形式封装为HttpClient组件,PB直接调用即可,通过该组件可以便捷的实现文件 ...

  2. Python实现向s3共享存储上传和下载文件

    Python实现向s3共享存储上传和下载文件 https://www.cnblogs.com/liang545621/p/10298617.html 使用Python从S3上传和下载文件 https: ...

  3. windows主机用scp命令向Linux服务器上传和下载文件

    windows主机用scp命令向Linux服务器上传和下载文件 文章目录: 一.scp介绍 二.scp上传和下载 1.上传 2.下载 三.scp的更多参数 一.scp介绍 scp是secure cop ...

  4. 利用SecureCRT上传、下载文件(使用sz与rz命令)

    利用SecureCRT上传.下载文件(使用sz与rz命令) 借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. 其中,对于s ...

  5. 从服务器上传和下载文件方法

    1. ssh 安装SSH Secure Shell Client客户端 下载链接 http://download.csdn.net/detail/jiandanjinxin/9755684 使用方法参 ...

  6. Linux--用SecureCRT来上传和下载文件

    转载自  Linux--用SecureCRT来上传和下载文件 SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能 ...

  7. java http 下载文件_JAVA通过HttpURLConnection 上传和下载文件的方法

    本文介绍了JAVA通过HttpURLConnection 上传和下载文件的方法,分享给大家,具体如下: HttpURLConnection文件上传 HttpURLConnection采用模拟浏览器上传 ...

  8. linux securefx 传输文件失败,解惑:如何使用SecureCRT上传和下载文件、SecureFX乱码问题...

    解惑:如何使用SecureCRT上传和下载文件.SecureFX乱码问题 一.前言 很多时候在windows平台上访问Linux系统的比较好用的工具之一就是SecureCRT了,下面介绍一下这个软件的 ...

  9. Linux下rz/sz安装及使用方法_上传和下载文件

    2019独角兽企业重金招聘Python工程师标准>>> Linux下rz/sz安装及使用方法_上传和下载文件 转载于:https://my.oschina.net/276172622 ...

  10. springboot传入json和文件_Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)...

    server: port: 8088 servlet: context-path: /sid spring: mvc: view: prefix: / suffix: .html /** * 返回界面 ...

最新文章

  1. 最新!字节跳动再次扩招1000人,招聘要求令人窒息
  2. requestWindowFeature()的应用
  3. android 重置画布,android-自定义视图:重按视图画布
  4. React中级学习(第一天)
  5. houseparty不流畅_重新设计Houseparty –用户体验案例研究
  6. codeforces 600D Area of Two Circles' Intersection
  7. Flink的Window
  8. wordpress主题-一款功能强大的综合类型wordpress模板
  9. str python3_python3.4.3如何转换str字符串?
  10. 1、使用Keras构建图像分类器
  11. 宏电GPRS DTU H7210调试报告(参数配置)
  12. SQL数据库性能胯了,换 SSD硬盘就能解决问题?
  13. 微信中各种代码/符号合集
  14. bugku 啊哒 有趣的表情包
  15. html中图片动态效果代码,CSS3实现的图片动态交互效果
  16. C语言在学习编程的作用并简单了解一下C语言
  17. 收到字节 Offer,月薪 60k*18薪 ,爽的两夜都没睡着!
  18. SpringMVC课程学习笔记-day02
  19. 澳洲服务器拳头账号怎么注册,云顶之弈手游澳服账号怎么注册 澳洲服拳头账号注册方法分享...
  20. win10 ODBC数据源32位没有Microsoft Access Driver(*.mdb,*accdb)

热门文章

  1. 4月份SCCM/ConfigMgr的5大看点
  2. Web 2.0 Gets Big — and Corporate
  3. 迁移Exchange Server 2003
  4. 小猿圈python视频_小猿圈python学习-格式化打印
  5. python2.7环境变量的配置_Windows7下python2.7.6环境变量配置
  6. linux挂载iso镜像文件_Linux服务器如何识别移动硬盘?
  7. python列表和字典_2020/11/18 python学习第5课 列表和字典
  8. Python接口自动化之接口依赖
  9. NFT平台Polkamon将于3月31日在Polkastarter进行IDO
  10. Uniswap 24h交易量约11亿美元涨10.66%