Java生成二进制文件与Postman以二进制流的形式发送请求
业务描述:
模拟终端(智能家居)发送HTTP POST请求,请求参数为二进制流;而且,二进制流是加密后的数据,因此调试分两步:
1、Java代码生成加密后数据,并保存为二进制流文件 (电脑上的图片就是二进制流文件,只不过我们打开的时候,借助于电脑软件渲染为图片)
上代码片段:
byte[] oneshotBytes = reqParms.getBytes();
log.info("length----->"+oneshotBytes.length);
//FileWriter fw = new FileWriter(new File("/home/unisound/private_cloud_platform/rtc_demo/req_binary"));
//fw.write(new String(oneshotBytes,"utf-8"));
//fw.flush();
//fw.close();
OutputStream os = new FileOutputStream(new File("/home/unisound/private_cloud_platform/rtc_demo/req_binary"));
os.write(oneshotBytes);
os.flush();
os.close();
代码很简单,就是把byte[]保存为文件;
坑点:千万不要把byte[] 转换为 String 然后把 String写入文件;不然你会发现,原本214字节的文件变为252字节或者更大!!!
原因很简单,二进制流转换为字符串,这是编码的过程,编码就需要选择字符集(这里是UTF-8),字符集中字符长度和字节长度是不对等的,比如UTF-8中,一个汉字是3个字节,字母数组不编码仍然是一个字节~!
简单说,就是二进制数组byte[] 与 转换成的String后的XXX.getBytes()的长度是不一样的!!!!

2、PostMan发送请求
这个就简单了,body中选择binary(二进制流),选中第一步生成的二进制文件...

注意:
header中,不要设置ContentType(一定注意,不要设置ContentType,如果非要设置,请设置为ContentType=text/plain,这也是默认值)
Java生成二进制文件与Postman以二进制流的形式发送请求的更多相关文章
- java 写 Excel(不生成实体文件,写为流的形式)
java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...
- Java写Excel(不生成实体文件,写为流的形式)
java 写 Excel(不生成实体文件,写为流的形式) public String exportReportExcel(String mediaCode, List<SimpleMediaRe ...
- JavaScript读二进制文件并用ajax传输二进制流
综合网上多个教程,加上自己实践得出的方法,目前能够兼容谷歌.IE11.IE10. htmlbody里的内容,没什么特殊的. <div id="dConfirm"> &l ...
- ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践
写在前面 :从提出需求到完美的解决问题,实现过程是曲折的. 需求:在前(web client)后(Restful Service)端完全解耦的模式框架下,webclient需要请求 Service 返 ...
- 使用C#向Sql Sever中存取网络图片和本地图片(二进制流的形式)
先是做普通的,存储我们本地的图片,将它转化为二进制流存储到数据库对应的表中. 代码如下: string path = "../../A.jpg"; FileStream fs = ...
- 用java开发图形界面项目,如何实现从本地选择图片文件并以二进制流的形式保存到MySQL数据库,并重新现实到面板
- java压缩下载图片并以zip流的形式下载到客户端
/** * * @param page * @param rows * @param works * @return * @author ffwwzz 下载zip * @throws IOExcept ...
- 将字符串以用二进制流的形式读入XML文件
其实将字符串写入XML文件本身并不复杂,这里只是写一些需要注意的地方,特别是编码格式,这里需要的是XML默认的编码方式是UTF-8,在对字符串进行编码的时候一定要注意, string strRecei ...
- 第六章 MVC之 FileResult和JS请求二进制流文件
一.FileResult 1.简介 表示一个用于将二进制文件内容发送到响应的基类.它有三个子类: FileContentResultFilePathResultFileStreamResult 推荐阅 ...
随机推荐
- day007-python函数之课后作业讲解
作业一: 需求:写函数,计算传入字符串中的[数字].[字母].[空格]以及[其他]的个数 #!/usr/bin/env python # -*- coding:utf-8 -*- #先定义一个函数 d ...
- 牛客练习赛55 E 树
题目链接: 题意:给出n个点,n-1条边求任意两个点的距离平方的和 解法: f[i]表示这个点的高度 sz[i]表示这个子树的大小 szz[i]表示这个这个子树大小的平方 sum[i]表示这个子树所有 ...
- 运行银联支付系统demo
1.Demo下载 下载地址:https://open.unionpay.com/tjweb/acproduct/list?apiservId=448 2.导入项目 注意:非maven项目,在导入ide ...
- (知识点1)#pragma once 与 #ifndef 解析
例如 为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式.在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还 ...
- 文件夹上传组件webupload插件
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1.通过form表单向后端发送请求 <form id=" ...
- AtCoder刷题记录
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...
- Fluent瞬态结果导出为Ensight格式
参考: (1)<ANSYS Fluent User's Guide>的3.13.9. EnSight Case Gold Files (2)https://support.ceisoftw ...
- [基础不过关填坑] 跨iframe触发事件
子iframe $("#testId").on("change",function(){ alert("change") }) 父页面 $( ...
- jenkins使用--部署
软件: centos 7.x java jenkins Pipeline ansible 1.安装请看上一文 2.主要是讲部署() 目的:实现 参数化发布 说明 :构建jar包是由gitlab-ci ...
- [Beta阶段]第二次Scrum Meeting
Scrum Meeting博客目录 [Beta阶段]第二次Scrum Meeting 基本信息 名称 时间 地点 时长 第二次Scrum Meeting 19/05/03 大运村寝室6楼 40min ...