java - 如何在同一个 HTTP 请求中以字节形式发送图像并一起发送 json 数据?

标签 java image http base64 transfer

我正在尝试以字节形式发送图像,因为带宽被 Base64 字符串占用。我看过关于将其作为流传输的示例 https://stackoverflow.com/a/17573179/8359785但问题是我不知道如何在同一个http请求中用它传输json数据

最佳答案

如果您需要将带宽使用量减少到最大,只需发送如下数据:

DataOutputStream dOut = new DataOutputStream(socket.getOutputStream());
dOut.writeInt(imageBytes.length); 
dOut.write(imageBytes);
dOut.writeInt(jsonBytes.length); 
dOut.write(jsonBytes);

接收代码:

DataInputStream dIn = new DataInputStream(socket.getInputStream());
int imageBytesLength = dIn.readInt();  
byte[] imageBytes= new byte[imageBytesLength];
dIn.readFully(imageBytes, 0, imageBytesLength); 
int jsonBytesLength = dIn.readInt();  
byte[] jsonBytes= new byte[jsonBytesLength ];
dIn.readFully(jsonBytesLength , 0, jsonBytesLength ); 

关于java - 如何在同一个 HTTP 请求中以字节形式发送图像并一起发送 json 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48167820/

相关文章:

java - 将 PriorityQueue 转换为排序数组的最佳方法

java - 为什么 Apache POI OPCPackage close() 方法不会保存/写入内容以打开可写文件?

image - 使用 Docker 从私有(private)注册表加载具有依赖项的镜像

c# - [WCF][SyncFramework] 如何覆盖 GetWebRequest?

http - 寻求在 HTML5 音频标签中不起作用

http - 如何在缓存中真正找到 "no-store"文件

java - 通配符扩展最终可选类

java - Java 上的 HTML 身份验证不起作用

Python OpenCV 从二值图像中检测到一个白色物体并裁剪它

ios - 在核心蓝牙中将图像作为数据发送