Android調用 Webservice報org.ksoap2.serialization.SoapPrimitive(轉)

android  Webservice開發的時候通常狀況下你們接受webservice服務器返回值的時候都是使用
SoapObject soapObject = (SoapObject) envelope.getResponse();
這個來接受返回來的值,但這種方法每每會產生java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive這樣的錯誤。 根據 測試和使用,在服務器端返回值是String類型的數值的時候使用
SoapObject soapObject
= (SoapObject) envelope.getResponse();

SoapObject result = (SoapObject)envelope.bodyIn;
這兩種方法來接受值都會報出java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive這樣的錯誤。
咱們能夠使用
Object object = envelope.getResponse();
就能夠解決這種錯誤。 或者
org.ksoap2.serialization.SoapPrimitive soapPrimitive
=(SoapPrimitive) envelope.getResponse(); tvResult.setText(soapPrimitive.toString()); 若是服務器返回值的類型是byte[] 的時候,使用
Object object
= envelope.getResponse();

SoapObject result = (SoapObject)envelope.bodyIn;
都不會發生錯誤現象,可是在使用
Object object = envelope.getResponse();取回來的值在使用base64進行解碼和編碼的時候會報出錯誤。 若是使用SoapObject result = (SoapObject)envelope.bodyIn;就能夠完整的將byte[]進行解碼和編碼
相關文章
相關標籤/搜索