永发信息网

WebService返回byte[],在Android怎么才能接收byte[]啊,跪求大神

答案:2  悬赏:20  手机版
解决时间 2021-02-05 21:49
  • 提问者网友:十年饮冰
  • 2021-02-05 18:56
WebService返回byte[],在Android怎么才能接收byte[]啊,跪求大神
最佳答案
  • 五星知识达人网友:走死在岁月里
  • 2021-02-05 20:32
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
byte[] bytes = Base64.decode(response.toString(), Base64.DEFAULT);
我在用soapUI调试时发现webservice默认会把返回的字节数据Base64编码,所以接收时需要加上Base64.decode
全部回答
  • 1楼网友:鸠书
  • 2021-02-05 21:29
1、使用ISO 8859-1编码将字节数组转为字符串; android接收到之后使用byte[] receive = String.getBytes("ISO 8859-1"); 2、还可以将字节数组拼成字符串,用,符号隔开每个值。 Arrays.toString(byte[] b);可以将字节数组转成这种格式。 ? 其实字节也是数值型。 import java.io.UnsupportedEncodingException; import java.util.Arrays; import java.util.Random; public class MainClass { public static void main(String[] args) { // TODO 自动生成的方法存根 byte[] rand = new byte[256]; new Random().nextBytes(rand); String translation = null; try { translation = new String(rand, "ISO-8859-1"); } catch (UnsupportedEncodingException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } System.out.println("要传输的内容:" + translation); System.out.println("模拟传输过去..."); byte[] receive = null; try { receive = translation.getBytes("ISO-8859-1"); } catch (UnsupportedEncodingException e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } System.out.println("传输前后的内容是否相同:" + Arrays.equals(rand, receive)); } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯