Я пытаюсь отправить изображения из wcf ksoap2 в android. На стороне wcf я преобразовал все изображения в массив байтов и сохранил их в ArrayList. На стороне android я пытаюсь заполнить ArrayList<Byte> arrays;
но он не заполняется, он остается пустым. Вот мой код
ФОС:
List<byte[]> list;
public List<byte[]> loadImages()
{
DirectoryInfo directoryInfo = new DirectoryInfo(@"C:\Users\User\Desktop\abc");
arr1 = new ArrayList();
foreach (FileInfo fi in directoryInfo.GetFiles())
arr1.Add(fi.FullName);
list = new List<byte[]>();
for (int i = 0; i < arr1.Count; i++)
{
img = Image.FromFile(arr1[i].ToString());
ms = new MemoryStream();
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
list.Add(ms.ToArray());
// objbyte = (byte[])ms.ToArray();
}
return list;
}
Android:
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope soapEnvelop;
soapEnvelop = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelop.dotNet = true;
soapEnvelop.setOutputSoapObject(Request);
HttpTransportSE htps = new HttpTransportSE(URL);
htps.call(SOAP_ACTION, soapEnvelop);
response = (SoapObject) soapEnvelop.getResponse();
ar = new String[response.getPropertyCount()];
arrays = new ArrayList<Byte>();
if (response != null) {
if (response.getPropertyCount() > 0) {
for (int i = 0; i < response.getPropertyCount(); i++) {
arrays.add( (Byte) response.getProperty(i));
}
}
}
для цикла выполняется правильно, но arrays
остаются пустыми
Я хочу отправить 10-15 изображений за раз. заранее спасибо
Здесь код:
SoapObject Request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapSerializationEnvelope soapEnvelop;
soapEnvelop = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelop.dotNet = true;
soapEnvelop.setOutputSoapObject(Request);
HttpTransportSE htps = new HttpTransportSE(URL);
htps.call(SOAP_ACTION, soapEnvelop);
response = (SoapObject) soapEnvelop.getResponse();
ar = new String[response.getPropertyCount()];
arrays = new ArrayList<Byte>();
if (response != null) {
if (response.getPropertyCount() > 0) {
for (int i = 0; i < response.getPropertyCount(); i++) {
arrays.add( (Byte) response.getProperty(i));
}
}
}
Вы отправляете данные в виде Byte
, однако у вас есть Byte[]
arrays = new ArrayList<Byte>();
должны быть arrays = new ArrayList<Byte[]>();
для начала.
ar = new String[response.getPropertyCount()];
(Byte) response.getProperty(i)
?