Java代码实现

/**

* 模拟文件post上传

* @param urlStr(接口地址)

* @param formName(接口file接收名)

* @param fileName(需要上传文件的本地路径)

* @return文件上传到接口返回的结果

*/

public static String uploadFile(String urlStr, String formName, String fileName) {

String baseResult = null;

try {

final String newLine = "\r\n";

final String boundaryPrefix = "--";

String BOUNDARY = "========7d4a6d158c9";// 模拟数据分隔线

URL url = new URL(urlStr);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestMethod("POST");// 设置为POST请求

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setRequestProperty("connection", "Keep-Alive");// 设置请求头参数

conn.setRequestProperty("Charsert", "UTF-8");

conn.setRequestProperty("Content-Type","multipart/form-data; boundary=" + BOUNDARY);

OutputStream out = conn.getOutputStream();

File file = new File(fileName);

StringBuilder sb = new StringBuilder();

sb.append(boundaryPrefix);

sb.append(BOUNDARY);

sb.append(newLine);

sb.append("Content-Disposition: form-data;name=\""+formName+"\";filename=\""+ fileName + "\"" + newLine);

sb.append("Content-Type:application/octet-stream");

sb.append(newLine);

sb.append(newLine);

out.write(sb.toString().getBytes());// 将参数头的数据写入到输出流中

DataInputStream in = new DataInputStream(new FileInputStream(file));// 数据输入流,用于读取文件数据

byte[] bufferOut = new byte[1024];

int bytes = 0;

while ((bytes = in.read(bufferOut)) != -1) {// 每次读1KB数据,并且将文件数据写入到输出流中

out.write(bufferOut, 0, bytes);

}

out.write(newLine.getBytes());

in.close();

byte[] end_data = (newLine + boundaryPrefix + BOUNDARY

+ boundaryPrefix + newLine).getBytes();

out.write(end_data);

out.flush();

out.close();

BufferedReader reader = new BufferedReader(new InputStreamReader(

conn.getInputStream()));

String line = null;

StringBuffer strs = new StringBuffer("");

while ((line = reader.readLine()) != null) {

strs.append(line);

}

baseResult = strs;

} catch (Exception e) {

baseResult = e.getMessage();

}

return baseResult;

}

java 模拟post上传文件_Java模拟post请求上传文件相关推荐

  1. java 转发上传文件_Java 发送http请求上传文件功能实例

    废话不多说了,直接给大家贴代码了,具体代码如下所示: package wxapi.WxHelper; import java.io.BufferedReader; import java.io.Dat ...

  2. java断点上传下载_java实现多线程断点续传,上传下载 分享

    程序采用的ftp工具, apache 的 commons-net-ftp-ftpclient package com.ftp; import java.io.File; import java.io. ...

  3. java解压两层zip文件_Java解压缩zip - 解压缩多个文件或文件夹实例

    java解压缩zip - 多个文件(包括文件夹),具体如下: 对多个文件和文件夹进行压缩,对复杂的文件目录进行解压. 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参 ...

  4. java httpget 传参数_Java 发送http请求(get、post)

    1.情景展示 java发送get请求.post请求(form表单.json数据)至另一服务器: 可设置HTTP请求头部信息,可以接收服务器返回cookie信息,可以上传文件等: 2.代码实现 所需ja ...

  5. java file 相对路径 根目录修改_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...

    https://blog.csdn.net/my__sun_/article/details/74450241 读取文件的写法,相对路径 在当前的目录结构中读取test.txt的有四种写法 简单粗暴的 ...

  6. php post 文件,PHP响应post请求上传文件的方法_php技巧

    本文实例讲述了PHP响应post请求上传文件的方法.分享给大家供大家参考,具体如下: function send_file($url, $post = '', $file = '') { $eol = ...

  7. 多线程处理大文件_Java内存映射,上G大文件轻松处理

    ☞ 免费CSDN资料帮下服务 | 免费加群 ☜ 内存映射文件(Memory-mapped File),指的是将一段虚拟内存逐字节映射于一个文件,使得应用程序处理文件如同访问主内存(但在真正使用到这些数 ...

  8. java编译找不到文件_java报错找不到文件解决方法

    刚开始编写java代码时,肯定会遇到各种各样的bug,当然对于初学者这也是能理解的,首先来说一个比较常见的错误,如下: 一般编写新的程序时,都是从Hello,World开始的,比如在DOS上运行jav ...

  9. java合并txt文件_Java程序将两个txt文件合并为第三个txt文件 - Break易站

    让给定的两个文件是file1.txt和file2.txt.我们的任务是将两个文件合并到第三个文件,例如file3.txt,但合并应该逐行进行.以下是交替合并的步骤. 为file3.txt创建Print ...

  10. java读取系统中指定的文件_java读取jar中指定的文件

    Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...

最新文章

  1. Oracle type (自定义类型的使用)
  2. C语言----求解N以内的素数的两种典型方法以及其优化
  3. Spark SQL 源代码分析系列
  4. 计算机视觉库OpenCV初步了解
  5. 【转】Java 内存模型及GC原理
  6. android 第三方圆弧进度条,android 可配置的圆弧进度条
  7. 陌陌直播公益课复课 带乡村孩子“打卡”丝绸之路
  8. 计算机科学与量子信息处理,量子计算交叉学科
  9. 【转载】SpringMVC访问静态资源
  10. Another Professor
  11. spark根据key输出到多个目录
  12. 计算机基础考试函数公式,计算机基础-excel公式考和函数.ppt
  13. 关于java Stream流将list集合分组之后与原list的集合的顺序不一致的问题
  14. python标准差不用numpy_Python numpy标准差
  15. java 拉勾网,拉钩网java笔试题分享
  16. Win10永久禁用键盘上的num lock键,解决打字时经常误触的困扰
  17. 跨境贸易EDM邮件使用指南
  18. Android MediaPlayer+SurfaceView播放视频 (异常处理)
  19. 阿里飞猪一员工贩卖机票报销发票获利超千万被判六年
  20. IntelliJ IDEA 如何实现代码展示自动换行

热门文章

  1. vlan跨交换机 udp广播_网络交换VLAN基础入门
  2. 蝴蝶优化算法_腾讯机智团队分享--AllReduce算法的前世今生
  3. 2017.7.26 幻想乡战略游戏 失败总结
  4. java操作sql数据库_java-JDBC连接数据库并进行SQL操作
  5. Android基础知识学习
  6. Android程序员重头学Synchronized
  7. 高通android开源代码下载,高通平台Android源码bootloader分析之sbl1(三)
  8. linux 相关系统参数调优(特别针对网络传输,大量TIME_WAIT 的TCP状态的情况)
  9. re.containerbase.startinternal 子容器启动失败_微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)...
  10. java平面内有n个矩形_JAVA 相交矩形面积  平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点...