服务器端得到了图片对应的字节数组,要通过http协议传输到android客户端,用newString()传入图片的字节数组,然后传到客户端,然后客户端通过String.getBytes()方法得到字节数组进行解析以后得不到图片,必须通过Base64编码,然后客户端进行Base64解码才行,为什么?
http协议可以传输二进制数据(浏览器里面的图片、视频、音频都是二进制数据),问题是传输的时候必须保证字节不会改变。你直接将图片的字节转化为一个字符串一般是不行的,除非使用的字符集在0~255之间全部有对应的字符,否则就会导致某些字节转换错误,那么客户端所收到的就不再是原来的那些字节了。base64之所以可以,是因为编码之后的字符都落在ASCII区间,而ASCII是所有字符编码都会支持的,因此可以正确传输和还原。