远程传参byte[]数组 接收到后数组值改变解决办法 && request header too large解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ydk888888/article/details/81809169

远程传参数byte[] 数组,当接收端获取到值后发现数组失真,值和长度都发生了改变;

解决方法:

byte[]数组转String,接收后再转回byte数组

base64对byte数组进行编码,进过编码后得到String传输到对端解码得出byte数组。

String str = Base64.encodeBase64String(bytes);
byte[] bytes = Base64.decodeBase64(str);

注意:①这里的String参数传递有时需要用POST方法,且参数注解为@requestBody而不是@requestParam方式,否则会报错 request header too large

        ②要用base64编码而不是 String str = new String(bytes);byte[] bytes = str.getBytes()这种方式;;因为当byte数组有负值时,转为String再转回来时会发现byte数组中的值发生了改变,(猜测是因为编码问题,因此采用Base64来处理)

猜你喜欢

转载自blog.csdn.net/ydk888888/article/details/81809169