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
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));
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯