我正在尝试使用Asp.Net网络服务。我正在使用ksoap2库。但我得到" java.lang.RuntimeException:无法序列化:[B @ 41eb9c40"例外。我试图通过网络服务发送文件。我认为问题是由字节数组引起的。这是我的代码:
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
String savePath = MainActivity.this.getFilesDir().getPath()
+ "/asd.txt";
RandomAccessFile file = new RandomAccessFile(savePath, "r");
byte[] fileByte = new byte[(int) file.length()];
file.readFully(fileByte);
file.close();
Request.addProperty("file", fileByte);
Request.addProperty("fileName", "fileNameDir.txt");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(Request);
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(
URL);
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject) envelope.getResponse();
System.out.println(response.getProperty(1).toString());
} catch (Exception e) {
System.out.println("exc: " + e);
}
答案 0 :(得分:2)
我修好了。我添加了这行代码并且工作正常:
MarshalBase64 marshal = new MarshalBase64();
marshal.register(envelope);