2015-10-09 31 views
1

我有一個返回對象家庭的ArrayList Web服務得到一個byte [] ...這是我的課主頁:如何從SoapObject

import java.io.FileNotFoundException; 
import java.io.Serializable; 
import java.sql.SQLException; 
import java.util.ArrayList; 


public class Home implements Serializable { 

    public void setPercorso(String percorso) { 
     this.percorso = percorso; 
    } 

    public String getPercorso() { 
     return percorso; 
    } 

    public void setNomignolo(String nomignolo) { 
     this.nomignolo = nomignolo; 
    } 

    public void setNome(String nome) { 
     this.nome = nome; 
    } 

    public void setUtente(String utente) { 
     this.utente = utente; 
    } 

    public void setFamiglia(String famiglia) { 
     this.famiglia = famiglia; 
    } 

    public void setFoto(byte[] foto) { 
     this.foto = foto; 
    } 

    public String getNomignolo() { 
     return nomignolo; 
    } 

    public String getNome() { 
     return nome; 
    } 

    public String getUtente() { 
     return utente; 
    } 

    public String getFamiglia() { 
     return famiglia; 
    } 

    public byte[] getFoto() { 
     return foto; 
    } 

    public Home(String nomignolo, String nome, String utente, String famiglia, byte[] foto, String percorso) { 
     this.nomignolo = nomignolo; 
     this.nome = nome; 
     this.utente = utente; 
     this.famiglia = famiglia; 
     this.foto = foto; 
     this.percorso = percorso; 
    } 

    public Home() { 
    } 

    private String nomignolo; 
    private String nome; 
    private String utente; 
    private String famiglia; 
    private byte[] foto; 
    private String percorso; 


    public ArrayList<Home> caricaH() throws SQLException, ClassNotFoundException, MyException, FileNotFoundException { 
     ArrayList<Home> list = new ArrayList<Home>(); 
     list= HomeDAO.caricaHome(this); 
     return list; 
    } 
} 

在Android部分我在此接收數據方法:

// other code bla bla bla... 


public static ArrayList<Home> invokeHomeWS(String userName, String webMethName) { 
    boolean homeStatus = false; 
    ArrayList<Home> list = new ArrayList<Home>(); 
    SoapObject request = new SoapObject(NAMESPACE, webMethName); 
    PropertyInfo unamePI = new PropertyInfo(); 
    // Set Username 
    unamePI.setName("username"); 
    // Set Value 
    unamePI.setValue(userName); 
    // Set dataType 
    unamePI.setType(String.class); 
    // Add the property to request object 
    request.addProperty(unamePI); 
    // Create envelope 
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
      SoapEnvelope.VER11); 
    // Set output SOAP object 
    envelope.setOutputSoapObject(request); 
    // Create HTTP call object 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
    try { 
     // Invoke web service 
     androidHttpTransport.call(SOAP_ACTION + webMethName, envelope); 
     // Get the response 
     java.util.Vector<SoapObject> rs = (java.util.Vector<SoapObject>) envelope.getResponse(); 





     for(SoapObject cs : rs){ 

      Home item = new Home(); 

      item.setNomignolo(cs.getPropertyAsString("nomignolo")); 
      item.setUtente(cs.getPropertyAsString("utente")); 
      item.setNome(cs.getPropertyAsString("nome")); 
      item.setPercorso(cs.getPropertyAsString("percorso")); 
      item.setFoto((byte[])cs.getProperty("foto")); 
      item.setFamiglia(cs.getPropertyAsString("famiglia")); 


     list.add(item); 
     } 

    } catch (Exception e) { 
     //Assign Error Status true in static variable 'errored' 
     HomeActivity.errored = true; 
     e.printStackTrace(); 
    } 

    return list; 
} 

一切正常,除了

item.setFoto((byte[])cs.getProperty("foto"));... 

它會產生一個錯誤:

W/System.err﹕ java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive cannot be cast to byte[].

所以我的問題是:我怎麼能獲得來自SoapObject字節數組?

回答

0

如果是返回String,則可以將其轉換爲byte [],如下所示。試試看。

byte[] b = string.getBytes(); 
+0

我需要這些字節將它們轉換成位圖 –

0

剛剛嘗試這一點

byte[] bitmapdata = blob.toByteArray(); 

,如果位圖數據的字節數組,然後得到位圖是這樣的

Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapdata , 0, bitmapdata .length); 

希望這有助於。

相關問題