ksoap2无法为byte []序列化异常

时间:2014-07-23 11:34:02

标签: android web-services ksoap2

我正在尝试使用Asp.Net网络服务。我正在使用kso​​ap2库。但我得到" 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);
    }

1 个答案:

答案 0 :(得分:2)

我修好了。我添加了这行代码并且工作正常:

    MarshalBase64 marshal = new MarshalBase64();
    marshal.register(envelope);