2012-10-25 25 views
0

我試圖更新我的Android應用程序以使用Ksoap2-Android版本3,從版本2.6開始,以利用新的SSL /簽名證書功能。Ksoap2-Android:從2.6更新到3.0打破上傳複雜對象

該應用程序似乎沒有問題發送簡單的參數和接收復雜的對象。然而,當試圖發送一個複雜的對象與我的請求,它到達服務器爲空。

我從來沒有任何編組/解組中的複雜類型在ksoap工作,所以基本上有很多的SoapObjects和PropertyInfo對象,很多.getProperty(「propertyname」)等等,通過層次結構。沒關係,編碼有點繁瑣,但它運行良好,所以它都很好。但是現在當我嘗試發送一個複雜的對象時,服務器上沒有收到請求的數據。

我把我的請求對象放在一起,方法是創建一個SoapObject,然後將更多的SoapObjects指定爲原始對象的屬性,並將更多的SoapObjects關閉,等等,並在樹尾有PropertyInfo對象。由於某些原因,這在使用kso​​ap2版本3時似乎不再有效。我已經測試過這一點,唯一的區別是我使用的ksoap版本。適用於2.6,不適用於3.0。

是否有任何已知的原因會發生這種情況?如果有必要,我可以在這裏發佈代碼,但我想我會問,如果我錯過了一些基本的東西。我沒有看到新聞或編碼技巧&技巧來暗示爲什麼會發生這種情況。

回答

0

我已經解決了這個問題,但我不確定究竟是什麼引起了它。

我重構了我的代碼,使用更新的方法上傳複雜的對象,詳見Ksoap2-android「Coding Tips and Tricks」頁面here

它似乎與更新版本的Ksoap2-Android,你不能再在樹的末尾有PropertyInfo對象嵌套SoapObjects,這是我以前做的。在新版本中,頂層只有一個SoapObject,它具有PropertyInfo對象,並且每個PropertyInfo對象都可以是複雜類型。如何做到這一點在上面的鏈接詳細。