如何通过ksoap2将byteArray从android发送到wcf

本文关键字:wcf android 何通过 ksoap2 byteArray | 更新日期: 2023-09-27 18:27:03

实际上我可以发送整数或字符串,但我不知道如何发送字节数组。

这是我的wcf代码。它接收字节数组,然后返回字符串。

 public string GetFirstName(byte[] bmpArray)
    {
        //Bitmap bitmap = ImageTypeConverter.ArrayToImage(source, 480, 640);
        //bitmap.Save(Environment.CurrentDirectory + "test" + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp);
        return "ImageSaveComplete";
    }

这是android代码的一部分。

SoapObject request =  new SoapObject(NAMESPACE,   METHOD_NAME);

      SoapSerializationEnvelope envelope =  new SoapSerializationEnvelope(SoapEnvelope.VER11);
      new MarshalBase64().register(envelope);
      envelope.encodingStyle=SoapEnvelope.ENC;
      request.addProperty("source", bmpArray);      
      envelope.dotNet =   true;
      envelope.setOutputSoapObject(request);
      HttpTransportSE androidHttpTransport =  new HttpTransportSE(URL);

实际上这是错误的代码。

有人帮我解决这个问题。

提前谢谢。

如何通过ksoap2将byteArray从android发送到wcf

如果您可以编辑服务,您可以让服务采用字符串而不是字节,并通过base64编码的字符串发送。但你可以发送字节,这就是我的代码看起来的样子,但它似乎和你的一样

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("source", bmpArray);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
new MarshalBase64().register(envelope);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL, 300000);