2012-01-27 128 views
3

我正在做一個web服務,主要是做,但事情是[WebMethod]返回一個.net DataTable所以客戶端使用其他平臺將無法調用它,我需要的架構是SOAdetails here)喜歡它接受請求並給出響應。我可以使用xml serializable類來獲取數據,但我不知道他們將如何適應。任何想法?作出一個客戶端平臺獨立的web服務

+0

如果以JSON格式返回數據會怎樣? – MUS 2012-01-27 14:13:01

+5

除非使用.NET 2.0,否則不應使用ASMX Web服務。你應該使用WCF進行所有新的開發。 – 2012-01-27 14:16:07

+0

從來沒有使用JSON會喜歡XML,在任何情況下,我會怎麼做,返回一個'字符串' – PUG 2012-01-27 14:16:12

回答

3

返回自定義類,只使用數組而不使用列表或字典。就這樣做了,PHP,Java和.Net開發人員將會與你的對象一起工作。

你也可以expose JSON有一個步驟,但如何做到這一點。

另請參閱Web API您可以決定使用它。

另一個說明:PHP可能會遇到1.1的本地SOAP支持問題,所以使用basichttp綁定或客戶端需要使用SOAP 1.2的NuSoap。

1

如果您想將您的HTTP服務儘可能廣泛地應用於各種客戶端,那麼我建議您完全丟棄基於SOAP的消息傳遞,而是將您的數據表示爲XML,JSON和/或您希望的任何其他內容類型根據爲您的數據定義的架構來支持。

恕我直言,一個非常好的OSS框架,爲此目的是OpenRasta

1

我會調查使用RESTful服務並返回數據作爲像XML或JSON平臺不可知的格式,如其他人所建議的。

此外,請看看使用ASP.NET MVC爲您的服務贊成WCF。它比WCF一個更好的系統,在我看來:

http://iwantmymvc.com/rest-service-mvc3

0

WCF可以輕鬆支持SOAP(basicHttpBinding)或REST(webHttpBinding)式的服務接口與出的現成的綁定。你當然可以構建ASMX,但用法正在消失。我剛寫了一個WCF REST/SOAP接口來替換使用DataTables,因爲互操作性問題)的傳統ASMX。現在,互操作性與爲您的平臺提供HTTP客戶端或WSDL類生成器一樣簡單。