天天看點

安卓調用webservice出現的一些問題

本文屬于轉載 原作者jam

在 wuzeyong 大神的幫助下才完成(最後有他的連接配接),這裡主要總結一下我連接配接時遇到的一些問題和解決方法(例如一個網絡權限問題就可能導緻無法通路)。

具體連接配接方法: http://blog.sina.com.cn/s/blog_87131d9a0101rmwg.html

上面的連接配接說了連接配接的方法,除了要導入相應的ksoap2.jar檔案到lib,還要在AndroidManifest.xml加入通路網絡的權限: 加上權限: "android.permission.INTERNET"

安卓調用webservice出現的一些問題

問題1: 傳回 http status 500 解決:這個首先檢視網絡連接配接的問題,然後對一下NAMESPACE 和URL 有沒有錯。例如NAMESPACE ="http://tempuri.org/"; 和  NAMESPACE ="http://tempuri.org";是不同的,一定要和伺服器提供的連接配接一樣。建議用複制,粘貼。

問題二2:方法錯誤,沒有資訊 解決:檢視調用方法是否正确,檢視文檔,建議直接複制粘貼。

問題3:參數錯誤, 傳回 anyType{} 解決:request.addProperty("strStudentNumber", strUserName);這句要根據方法的參數個數調用相應個數。   在網上看他們說參數的名稱不重要,重要是參數個數,但是我在調試時發現參數的名字錯了也得不到結果,傳回了anyType{}.是以最好根據文檔說明的參數名稱傳值。

問題4:得到的結果不全。 解決:soapObject.getProperty(0)這樣得到的結果這能是一維的結果。其實前面的文章已有解決方法。

問題5:android 接收byte[] 類型 解決:可以用編碼轉換       SoapObject soapObject =(SoapObject) envelope.bodyIn;             if(soapObject == null) return null;             byte[] b =Base64.decode(soapObject.getProperty(0).toString(),Base64.DEFAULT);               問題6:byte[] 轉換為bitmap 解決: 假設 by 為byte[] 類型 Bitmap bp = BitmapFactory.decodeByteArray(by, 0,by.length);   Bitmap可以用iamgeView這直接顯示在界面上。

以上問題可能還有遺漏,有問題可以聯系我~ Jam

繼續閱讀