2014-10-20 49 views
0

其實我可以發送整數或字符串,但我不知道如何發送字節數組。如何通過ksoap2發送byteArray從android到wcf

這是我的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); 

其實這是錯誤的代碼。

有人幫我解決了這個問題。

預先感謝您。

回答

0

如果您可以編輯服務,您可以使服務採用字符串而不是字節並通過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);