0

プロジェクトの一環として、画像をサーバーにアップロードする必要があります。サーバー部分には、バイト配列を受け入れて画像に変換する Web サービスがあります。私のクライアント部分(Android + ksoap2)では、Base64エンコーディングを使用して画像をbyte []配列に変換しました。しかし、バイト配列を Web サービスに渡すことができませんでした。いくつかのシリアライゼーションの問題を示しています。ksoap2を使用してバイト配列をWebサービスに渡すにはどうすればよいですか。誰か助けてください.....

4

1 に答える 1

1

このコードで試してください

を使用してバイト配列をシリアル化しますMarshalBase64

    MarshalBase64 marshal = new MarshalBase64();
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    bmp.compress(CompressFormat.PNG, 100, out);
    byte[] raw = out.toByteArray();

    SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE,
        OPERATION_NAME);
    request.addProperty("image", raw);

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
        SoapEnvelope.VER11);
    envelope.dotNet = true;
    envelope.setOutputSoapObject(request);
    marshal.register(envelope);
    HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS);

    try

    {

        httpTransport.call(SOAP_ACTION, envelope);
        Object response = envelope.getResponse();
        }

    catch (Exception exception)

    {
        exception.printStackTrace();

    }

}

ksoap androidを使用してバイト配列をシリアライズするを参照してください

于 2011-03-26T09:13:25.850 に答える