проблема в получении байта [] из wcf ksoap2 для Android

1

Я пытаюсь отправить изображения из 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 изображений за раз. заранее спасибо

  • 0
    Какова цель ar = new String[response.getPropertyCount()];
  • 0
    Вы пробовали отладку, чтобы увидеть значение (Byte) response.getProperty(i) ?
Показать ещё 1 комментарий
Теги:
wcf

2 ответа

1
Лучший ответ

Здесь код:

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)); 
                    }
                }
            }
0

Вы отправляете данные в виде Byte, однако у вас есть Byte[]

  • 0
    как я могу решить эту проблему?
  • 0
    @yakhtarali arrays = new ArrayList<Byte>(); должны быть arrays = new ArrayList<Byte[]>(); для начала.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню