2010-06-07 75 views
8

我知道這個問題已經在這裏提過,但我不認爲這些答案足以滿足我的需求。用Android調用.NET Webservice

我們有一個用於iPhone應用程序的SOAP web服務,但可能需要安卓特定版本或服務代理,因此我們可以選擇使用SOAP或JSON。我有兩種方法的一些顧慮:

SOAP的解決方案:

  1. 是否有可能生成WSDL文件的Java 源代碼,如果是這樣, 將它包含某種代理 的類來調用webservice並且 它會在Android 環境中工作嗎?
  2. Google沒有在Android中提供任何SOAP 庫,所以我需要使用 第三方,有什麼建議嗎?
  3. 怎麼樣的性能/開銷 解析和傳輸SOAP xml通過導線與JSON 解決方案?

JSON的解決方案:

  1. 有幾班在 Android的SDK,讓我解析 JSON,但它支持通用 解析,就像如果我想要的結果 被解析爲複雜類型?或者我需要 自己實現那個 ?
  2. 我已經閱讀了關於2個庫之前 這裏在Stackoverflow,GSON和 傑克遜。性能和可用性(從 開發人員的角度來看)有什麼區別 明智嗎?你們有 這些圖書館有沒有經驗 ?

所以我想大的問題是,用什麼方法?

我希望你能幫助我。在此先感謝:-)

回答

0

我一直在做類似的事情,儘管我可能不是最好的權威人士,但我會說10次JSON中有9次是你想要的方式。並不是說soap沒有它的位置,但是對於大多數情況來說,JSON會更簡單,如果看起來並不那麼方便,那麼更有可能您的服務需要重構,而不是具有真正複雜的域來表示。

額外的獎勵ofcourse是,如果你想使用iPhone,黑莓,WinMo7,阿賈克斯的網站,還是真的在其他地方同樣的服務,這將是你非常非常好:-)

我的$ 0.02

+0

謝謝。我使用json解決方案,因爲它也可能用於ajax,並且使用Gson解析json非常簡單;-) – 2010-06-18 09:36:26

5

我不能講很多關於JSON解決方案。但是我一直在使用Android上的SOAP。

這裏是我對SOAP解決方案的評論。

  1. 我在Android設備上使用SOAP發現的最流行的庫是kSOAP。
  2. 默認kSOAP庫沒有提供從WSDL生成Java類的方法。如果你有一個有很多方法的WSDL,這是個大問題。我發現一個項目(http://en.sourceforge.jp/projects/sfnet_wsdl2ksoap2/)「聲稱」這樣做。注意:我已經而不是尚未成功使用。我在實現了我的代碼的當前版本後才發現它。
  3. XML解析有一個開銷,有時它可能是一個問題。解析開銷取決於您的應用程序上下文和性能要求。目前,通過使用SOAP發送視頻幀(SOAP包含base64編碼的MJPEG幀),我獲得了可接受的性能。對於大型消息,Nexus One上的解析時間大約爲150-200毫秒(取決於消息大小。 )

這可能是無關的,但我發現這個Google I/O session on building RESTFul applications對Android有用。我認爲他們也發佈了JSON API in 2.2

希望這會有所幫助。

+1

謝謝你的回答。 Wsdl2ksoap2聽起來像一個有趣的項目,但它是空的。我不能成爲唯一一個尋找這樣的工具的人,當你想要消耗一個相當大的web服務(wsdl)時,你們會做什麼,手動寫下它們? 我仍然希望有人會對JSON解決方案發表評論:-) – 2010-06-09 07:46:07