Dot-Net

使用 Android 呼叫 .NET Web 服務

  • June 11, 2010

我知道這個問題以前在這裡被問過,但我認為這些答案不足以滿足我的需要。

我們有一個用於 iPhone 應用程序的 SOAP Web 服務,但我們可能需要 Android 特定版本或服務的代理,因此我們可以選擇使用 SOAP 或 JSON。我對這兩種方法都有一些擔憂:

肥皂解決方案:

  1. 是否可以從 WSDL 文件生成 java 原始碼,如果可以,它是否會包含某種代理類來呼叫 web 服務,它是否可以在 Android 環境中工作?
  2. Google 沒有在 Android 中提供任何 SOAP 庫,所以我需要使用 3rd 方,有什麼建議嗎?
  3. 與 JSON 解決方案相比,通過網路解析和傳輸 SOAP xml 的性能/成本如何?

JSON解決方案:

  1. Android sdk 中有一些類可以讓我解析 JSON,但它是否支持泛型解析,比如我希望將結果解析為複雜類型?還是我需要自己實施?
  2. 我之前在 Stackoverflow、GSON 和 Jackson 上讀過大約 2 個庫。性能和可用性(從開發人員的角度)有什麼區別?你們對這兩個庫有任何經驗嗎?

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

我希望你能幫助我。提前致謝 :-)

我自己也一直在研究類似的東西,雖然我可能不是這方面的最佳權威,但我會說 10 次中有 9 次 JSON 是你想要的方式。並不是說soap 沒有它的位置,但是對於大多數事情來說,JSON 會更簡單,如果它看起來不是這樣,那麼您的服務更有可能需要重構,而不是擁有一個真正複雜的域來表示。

當然,額外的好處是,如果您想在 iPhone、Blackberry、WinMo7、Ajax 網站或其他任何地方使用相同的服務,那對您來說會好得多 :-)

我的 0.02 美元

我不能多談 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 毫秒(取決於消息大小。 )

這可能無關緊要,但我發現這個關於為 Android建構 RESTFul 應用程序的 Google I/O 會議很有用。我認為他們還在2.2 中發布了 JSON API

希望這可以幫助。

引用自:https://stackoverflow.com/questions/2992258