我正在尝试以字节形式发送图像,因为带宽被 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/