java 模拟post上传文件_Java模拟post请求上传文件
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请求上传文件相关推荐
- java 转发上传文件_Java 发送http请求上传文件功能实例
废话不多说了,直接给大家贴代码了,具体代码如下所示: package wxapi.WxHelper; import java.io.BufferedReader; import java.io.Dat ...
- java断点上传下载_java实现多线程断点续传,上传下载 分享
程序采用的ftp工具, apache 的 commons-net-ftp-ftpclient package com.ftp; import java.io.File; import java.io. ...
- java解压两层zip文件_Java解压缩zip - 解压缩多个文件或文件夹实例
java解压缩zip - 多个文件(包括文件夹),具体如下: 对多个文件和文件夹进行压缩,对复杂的文件目录进行解压. 压缩方法使用的是可变参数,可以压缩1到多个文件..可以写数组的方式或者一个个写到参 ...
- java httpget 传参数_Java 发送http请求(get、post)
1.情景展示 java发送get请求.post请求(form表单.json数据)至另一服务器: 可设置HTTP请求头部信息,可以接收服务器返回cookie信息,可以上传文件等: 2.代码实现 所需ja ...
- java file 相对路径 根目录修改_java中使用相对路径读取文件的写法总结 ,以及getResourceAsStream() (转)...
https://blog.csdn.net/my__sun_/article/details/74450241 读取文件的写法,相对路径 在当前的目录结构中读取test.txt的有四种写法 简单粗暴的 ...
- php post 文件,PHP响应post请求上传文件的方法_php技巧
本文实例讲述了PHP响应post请求上传文件的方法.分享给大家供大家参考,具体如下: function send_file($url, $post = '', $file = '') { $eol = ...
- 多线程处理大文件_Java内存映射,上G大文件轻松处理
☞ 免费CSDN资料帮下服务 | 免费加群 ☜ 内存映射文件(Memory-mapped File),指的是将一段虚拟内存逐字节映射于一个文件,使得应用程序处理文件如同访问主内存(但在真正使用到这些数 ...
- java编译找不到文件_java报错找不到文件解决方法
刚开始编写java代码时,肯定会遇到各种各样的bug,当然对于初学者这也是能理解的,首先来说一个比较常见的错误,如下: 一般编写新的程序时,都是从Hello,World开始的,比如在DOS上运行jav ...
- java合并txt文件_Java程序将两个txt文件合并为第三个txt文件 - Break易站
让给定的两个文件是file1.txt和file2.txt.我们的任务是将两个文件合并到第三个文件,例如file3.txt,但合并应该逐行进行.以下是交替合并的步骤. 为file3.txt创建Print ...
- java读取系统中指定的文件_java读取jar中指定的文件
Java 档案 (Java Archive, JAR) 文件是基于 Java 技术的打包方案.它们允许开发人员把所有相关的内容 (.class.图片.声音和支持文件等) 打包到一个单一的文件中.JAR ...
最新文章
- Oracle type (自定义类型的使用)
- C语言----求解N以内的素数的两种典型方法以及其优化
- Spark SQL 源代码分析系列
- 计算机视觉库OpenCV初步了解
- 【转】Java 内存模型及GC原理
- android 第三方圆弧进度条,android 可配置的圆弧进度条
- 陌陌直播公益课复课 带乡村孩子“打卡”丝绸之路
- 计算机科学与量子信息处理,量子计算交叉学科
- 【转载】SpringMVC访问静态资源
- Another Professor
- spark根据key输出到多个目录
- 计算机基础考试函数公式,计算机基础-excel公式考和函数.ppt
- 关于java Stream流将list集合分组之后与原list的集合的顺序不一致的问题
- python标准差不用numpy_Python numpy标准差
- java 拉勾网,拉钩网java笔试题分享
- Win10永久禁用键盘上的num lock键,解决打字时经常误触的困扰
- 跨境贸易EDM邮件使用指南
- Android MediaPlayer+SurfaceView播放视频 (异常处理)
- 阿里飞猪一员工贩卖机票报销发票获利超千万被判六年
- IntelliJ IDEA 如何实现代码展示自动换行
热门文章
- vlan跨交换机 udp广播_网络交换VLAN基础入门
- 蝴蝶优化算法_腾讯机智团队分享--AllReduce算法的前世今生
- 2017.7.26 幻想乡战略游戏 失败总结
- java操作sql数据库_java-JDBC连接数据库并进行SQL操作
- Android基础知识学习
- Android程序员重头学Synchronized
- 高通android开源代码下载,高通平台Android源码bootloader分析之sbl1(三)
- linux 相关系统参数调优(特别针对网络传输,大量TIME_WAIT 的TCP状态的情况)
- re.containerbase.startinternal 子容器启动失败_微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)...
- java平面内有n个矩形_JAVA 相交矩形面积 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点...