如何使用 ksoap 在 android 中获取字节数组类型的 blob 数据?
How to get blob data as byte array type in android with ksoap?
我有一个 Web 服务,我在 android 应用程序中使用 ksoap 库访问它。我的代码如下;
Data.java
public class Data implements KvmSerializable{
public byte[] byteValue;
public Data(){
}
public Data(byte[] byteValue) {
this.byteValue = byteValue;
}
@Override
public Object getProperty(int arg0) {
switch(arg0) {
case 0:
return byteValue;
}
return null;
}
@Override
public int getPropertyCount() {
return 1;
}
@Override
public void setProperty(int index, Object o) {
switch (index) {
case 0:
byteValue = (byte[]) o;
break;
}
}
@Override
public void getPropertyInfo(int i, Hashtable arg1, PropertyInfo info) {
switch(i) {
case 0:
info.type = MarshalBase64.BYTE_ARRAY_CLASS;
info.name = "byteValue";
break;
}
}
我的数据库中有一个 blob 值不同于图像。当我使用以下代码时,
SoapObject response = (SoapObject) envelope.getResponse();
response.getProperty(0);
我获得了对象类型值,但是对于我的 android 应用程序,我需要将此值作为 byte[] 类型获得。我怎样才能做到这一点?
我找到了适合我的应用程序的解决方案。
在我的 activity class 中,我尝试了以下代码:
byte[] byteValue = Base64.decode(response.getProperty(0).toString().getBytes(), Base64.DEFAULT);
我有一个 Web 服务,我在 android 应用程序中使用 ksoap 库访问它。我的代码如下;
Data.java
public class Data implements KvmSerializable{
public byte[] byteValue;
public Data(){
}
public Data(byte[] byteValue) {
this.byteValue = byteValue;
}
@Override
public Object getProperty(int arg0) {
switch(arg0) {
case 0:
return byteValue;
}
return null;
}
@Override
public int getPropertyCount() {
return 1;
}
@Override
public void setProperty(int index, Object o) {
switch (index) {
case 0:
byteValue = (byte[]) o;
break;
}
}
@Override
public void getPropertyInfo(int i, Hashtable arg1, PropertyInfo info) {
switch(i) {
case 0:
info.type = MarshalBase64.BYTE_ARRAY_CLASS;
info.name = "byteValue";
break;
}
}
我的数据库中有一个 blob 值不同于图像。当我使用以下代码时,
SoapObject response = (SoapObject) envelope.getResponse();
response.getProperty(0);
我获得了对象类型值,但是对于我的 android 应用程序,我需要将此值作为 byte[] 类型获得。我怎样才能做到这一点?
我找到了适合我的应用程序的解决方案。
在我的 activity class 中,我尝试了以下代码:
byte[] byteValue = Base64.decode(response.getProperty(0).toString().getBytes(), Base64.DEFAULT);