2012-02-09 122 views
1

我需要將不同手機中的一些數據同步。例如,我想啓用「朋友」(自動)共享筆記...Android Web服務,REST還是SOAP WSDL?

我現在想知道達到這個最好的方法是什麼。

現在我想我必須編寫自己的web服務才能達到這個目標。 當我開始思考SOAP Web服務時,我發現很多人說他們會開發一種REST方法。

在我的情況下,「更好」的解決方案是什麼?或者有什麼其他方法來同步不同Android手機上的數據?

回答

4

也許我應該首先提到REST不是一個協議,因此很難與SOAP比較。

在移動應用程序中使用SOAP的主要缺點是它通常使用XML,因此比大多數其他協議使用更多的數據,並且它的設置和維護都相當複雜。另一方面,如果一方寫服務器和一個客戶端,那麼SOAP給你提供了很好的方式來看到這些更改是否清晰地傳達(即WSDL)。 SOAP通常在移動電話中得不到很好的支持,並且可能需要第三方庫才能使其工作。

REST經常被誤用作使用JSON的基於HTTP通信的名稱,這是與移動設備進行通信的一種非常簡單的方式,且開銷較低。如果你對服務器和客戶端都有控制權,那麼這並不是一個錯誤的方式(但不是唯一的方法)JSON通常很容易在所有移動平臺上工作,並且HTTP本身也很好地支持HTTP。

+0

我喜歡這個答案,只是一個快速補充:關於ORM Json通常更快,通過庫可以更快地將JSON響應映射到對象,例如Google提供的GSON。 – 2012-02-09 12:19:05

1

最好使用REST而不是SOAP,因爲SOAP非常冗長,並且會增加網絡數據大小。此外,如果您使用SOAP,則必須包含外部庫(如kSOAP)來消費響應。使用REST,標準的HTTP客戶端是可以的。

關於數據格式:想想JSON不比XML冗長。

關於同步,我不知道Android SDK是否提供了類來執行這項工作。