2013-12-10 2 views
0

Я пытаюсь передать байт [] через webservices, мне нужно выставить байт []. Пока это то, что у меня есть. Этот метод в классе я создаю называется MarshallArray и реализует маршалKsoap2 android library marshal byte []

public void writeInstance(XmlSerializer writer, Object obj) throws IOException { 
    byte[] myArray = (byte[]) obj; 
    for (int i = 0; i < myArray.length; i++) { 
     writer.startTag("", "ArrayOfBytes"); 
     writer.text(Base64.encode(myArray[i]).toString()); 
     writer.endTag("", "ArrayOfBytes"); 
    } 
} 

Пример я использовал для создания этого был

public void writeInstance(XmlSerializer writer, Object obj) throws IOException { 
    String[][][] myArray = (String[][][]) obj; 
    for (int i = 0; i < myArray.length; i++) { 
     writer.startTag("", "ArrayOfArrayOfString"); 
     for (int j = 0; j < myArray[i].length; j++) { 
      writer.startTag("", "ArrayOfString"); 
      for (int k = 0; k < myArray[i][j].length; k++) { 
       writer.startTag("", "string"); 
       writer.text(myArray[i][j][k]); 
       writer.endTag("", "string"); 
      } 
      writer.endTag("", "ArrayOfString"); 
     } 
     writer.endTag("", "ArrayOfArrayOfString"); 
    } 
} 

У меня есть проблема в том, что в первый способ, как получить доступ к элемент в байт [], поскольку он может получить только массив, а не элемента в байт []

Base64.enconde(byte[]) 

ответ

0

Обычно то, что я делаю то, что я создаю новый SoapObject следующим образом:

SoapObject request = new SoapObject(...) 

затем добавить свой байтовый массив следующим образом:

request.addProperty("myArray ", myArray); 

Тогда:

SoapSerializationEnvelope envelope=new SoapSerializationEnvelope(SoapEnvelope.VER11); 
MarshalBase64().register(envelope); 
envelope.setOutputSoapObject(request); 
+0

И туАггау является байт [], например, для изображения? – JoaoFilipeClementeMartins

+0

может быть, да, я полагаю – Nostradamus