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[]進行解碼和編碼

 

 

原文地址:

http://blog.sina.com.cn/s/blog_519d338501011o2w.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM