/*** 文件上传* @param actionUrl:上传接口地址* @param files:需上传的文件集合* @return* @throws IOException*/
public static String upLoadFilePost(String actionUrl, Map<String, File> files) throws IOException {String BOUNDARY = java.util.UUID.randomUUID().toString();String PREFIX = "--", LINEND = "\r\n";String MULTIPART_FROM_DATA = "multipart/form-data";String CHARSET = "UTF-8";URL uri = new URL(actionUrl);HttpURLConnection conn = (HttpURLConnection) uri.openConnection();conn.setReadTimeout(5 * 1000);conn.setDoInput(true);// 允许输入conn.setDoOutput(true);// 允许输出conn.setUseCaches(false);conn.setRequestMethod("POST"); // Post方式conn.setRequestProperty("connection", "keep-alive");conn.setRequestProperty("Charsert", "UTF-8");conn.setRequestProperty("Content-Type", MULTIPART_FROM_DATA+ ";boundary=" + BOUNDARY);DataOutputStream outStream = new DataOutputStream(conn.getOutputStream());// 发送文件数据if (files != null)for (Map.Entry<String, File> file : files.entrySet()) {StringBuilder sb1 = new StringBuilder();sb1.append(PREFIX);sb1.append(BOUNDARY);sb1.append(LINEND);sb1.append("Content-Disposition: form-data; name=\"file\"; filename=\""+ file.getKey() + "\"" + LINEND);sb1.append("Content-Type: application/octet-stream; charset="+ CHARSET + LINEND);sb1.append(LINEND);outStream.write(sb1.toString().getBytes());InputStream is = new FileInputStream(file.getValue());byte[] buffer = new byte[1024];int len = 0;while ((len = is.read(buffer)) != -1) {outStream.write(buffer, 0, len);}is.close();outStream.write(LINEND.getBytes());}// 请求结束标志byte[] end_data = (PREFIX + BOUNDARY + PREFIX + LINEND).getBytes();outStream.write(end_data);outStream.flush();// 得到响应码int res = conn.getResponseCode();if (res == 200) {InputStream in = conn.getInputStream();InputStreamReader isReader = new InputStreamReader(in);BufferedReader bufReader = new BufferedReader(isReader);String line = "";String data = "";while ((line = bufReader.readLine()) != null) {data += line;}outStream.close();conn.disconnect();return data;}outStream.close();conn.disconnect();return "";
}

PS:在子线程中调用。

Android开发中Post方式上传文件(头像之类的)相关推荐

  1. android项目中使用的服务器上,android 开发中使用okhttp上传文件到服务器

    开发android手机客户端,常常会需要上传文件到服务器,比如:你手机里的照片. 使用okhttp会是一个很好的选择.它使用很简单,而且运行效率也很高. 首先,在 app/build.gradle 的 ...

  2. 转:vc中如何通过http的post方式上传文件

    文章引自:http://blog.myspace.cn/e/404248359.htm vc中如何通过http的post方式上传文件 HTTP响应     在接收和解释请求消息后,服务器会返回一个HT ...

  3. 详细阐述Web开发中的图片上传问题

    Web开发中,图片上传是一种极其常见的功能.但是呢,每次做上传,都花费了不少时间. 一个"小功能"花费我这么多时间,真心不愉快. So,要得认真分析下原因. 1.在最初学习Java ...

  4. jquery ajax java上传文件_jQuery Ajax方式上传文件的方法

    jQuery Ajax方式上传文件用到两个对象 第一个对象:FormData 第二个对象:XMLHttpRequest 目前新版的Firefox 与 Chrome 等支持HTML5的浏览器完美的支持这 ...

  5. ajax上传 java,javaWeb中使用ajax上传文件

    javaWeb上传图片 上传文件所必要的两个jar包:commons-fileupload.jar.commons-io.jar. 核心代码: String withPath = req.getSer ...

  6. Android中layout目录的作用,Android 开发中layout下的子文件夹

    Android 开发中layout下的子文件夹 发布时间:2020-10-25 11:42:36 来源:脚本之家 阅读:71 作者:厚土火焰山 如果一个项目内有很多个界面,那么在layout下会有太多 ...

  7. python post 上传文件_Python通过POST方式上传文件及提交参数到远程服务器

    前言 在树莓派开发过程中,因为没有公网IP,为了方便访问获取信息,有时候我们需要将树莓派获取到的一些数据或文件上传到云端服务器.这是一个比较简便的方法. Python代码 需要用到requests库, ...

  8. idea构建post请求_IntelliJ IDEA 模拟 POST方式 上传文件

    IntelliJ IDEA 模拟 POST方式 上传文件 IntelliJ IDEA 集成了 HTTP Request,再没有postman的场景下,也可以很方便地模拟各种 HTTP 请求方式的场景. ...

  9. java序列化表单同步请求_Ajax serialize() 表单进行序列化方式上传文件

    通过传统的 form 表单提交的方式上传文件 上传文件: 不过传统的 form 表单提交会导致页面刷新,但是在有些情况下,我们不希望页面被刷新,这种时候我们都是使用 Ajax 的方式进行请求的. 使用 ...

最新文章

  1. jdbc mysql 返回游标_使用JdbcTemplate流式(游标)读取数据库
  2. wordpress acf字段 不同样式_WordPress强大搜索功能如何实现?安装Ivory Search插件
  3. python使用openweathermap API获取全世界主要城市天气信息
  4. python 多维list 排序_人生苦短 | Python列表和元组归纳整理
  5. python全栈学习--day3
  6. Linux基础——gcc编译、静态库与动态库(共享库)
  7. RSA的密钥把JAVA格式转换成C#的格式
  8. HDU多校6 - 6831 Fragrant numbers(dfs爆搜+打表)
  9. 前端学习(2932):vue中的v-if
  10. SLF4J with Logback in a Maven Project | Mograblog
  11. linux的nohup命令
  12. 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > MQTT协议接入 >
  13. BIO、NIO、AIO,还傻傻分不清?
  14. Mathematic Paradigm
  15. 哪个手机浏览器支持html5,四大手机浏览器HTML5兼容性横评
  16. WSL2 网络异常排查 [ping 不通、网络地址异常、缺少默认路由、被宿主机防火墙拦截]
  17. html版权字符大全,HTML特殊字符大全
  18. 黑马前端基础-HTML-SE
  19. 新造车杀入15万,燃油车慌了?
  20. STM32F767多通道ADC采集+DMA传输

热门文章

  1. 华为H5快游戏如何接入广告服务
  2. 《华为CC++语言安全规范》笔记
  3. c语言数学函数库根号程序,C语言初学 数学中带根号的复杂计算问题
  4. 一些工程研发专业名词解释、 制造业常用术语、 BOM的分类
  5. Ubuntu虚拟机安装EDA工具:VCS+Verdi+dve2018方法教程
  6. 域格LPM2100 me NB模块PSM相关问题
  7. 详细分析本机号码一键登录原理!建议收藏
  8. office电子书_掌阅推出首款彩屏电子书阅读器,用它看漫画体验到底如何?
  9. Mac用户学Python-Day1:安装与环境配置
  10. AD20的一些基本操作