我有以下代码使用android http默认客户端发送图像(位图二进制数据):
//gets raw binary data and convert it to a string
ByteArrayOutputStream baos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String imageData = new String(imageBytes);
//http put body
StringEntity se = new StringEntity(imageData);
putRequest.setEntity(se);
我需要在put请求体中发送其原始二进制内容,但似乎内容未正确发送。
我可以使用curl和--data-binary发送图像二进制文件(这就是我在android中尝试做的事情)。
将位图二进制转换为字符串的过程是否正确?
谢谢!
答案 0 :(得分:0)
好吧,我的坏。
如果有人犯了同样的错误:
我应该使用ByteArrayEntity类而不是StringEntity类:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
//http put body
ByteArrayEntity be = new ByteArrayEntity(imageBytes);
putRequest.setEntity(be);
我试图将bytearray转换为字符串并发送它,正确的方法是使用ByteArrayEntity类。