我正在尝试将图像作为字节发送,因为带宽被base64字符串杀死。我已经看到了将其作为流传输的示例 https://stackoverflow.com/a/17573179/8359785但问题是我不确定如何在同一个http请求中使用它传输json数据
答案 0 :(得分:1)
您可以在JSON
中添加一个字段,以容纳Byte[]
的{{1}}。
Image
可能是这样的:
JSON
答案 1 :(得分:1)
如果您需要将带宽使用量降至最大,请发送如下数据:
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 );