说明:这个是前段时间与Android端接口联调时碰到的问题!
问题描述:
在Android端应用程序以HTTPS方式调用后端接口并传递byte[]数组参数,
刚开始是在Android端先将byte[]数组转换为String字符串,通过
网络传输发送给后端接口,后端接口接收到String类型参数然后将其转化为
byte[]数组,经比较发现后端接口接收的byte[]数组与Android端发送的byte[]数组
数据不一样。
代码是这样写的:
① byte[] byte1 = new byte[]{......};
String str = new String(byte);
......HTTPS传输......
byte[] byte2 = str.getByte();
结果发现byte1 和 byte2 数据内容不一样
解决办法:
1)用base64对byte数组进行编码,通过网络传输接收到数据之后,再用base64对其
解码得到byte数组。
② byte[] byte2 = new byte[]{......};
String str = Base64.encodeBase64String(byte2);
......HTTPS传输......
byte[] byte = Base64.decodeBase64(str);
2)指定编码进行传输
③ byte[] byte3 = new byte[]{......};