2012-01-27 10 views
3

私はwebserviceを作成していますが、ほとんどは完了しましたが、[WebMethod]は.net DataTableを返します。他のプラットフォームを使用しているクライアントはそれを呼び出すことができません。 SOAdetails here)は要求を受け取り、応答を与えるようです。私はxml serializableクラスを使用してデータを取得できますが、どのようなアイデアに収まるかわかりません。クライアントのプラットフォームに依存しないwebserviceを作成する

+0

JSON形式でデータを返すとどうなりますか? – MUS

+5

.NET 2.0を使用していない限り、ASMX Webサービスは使用しないでください。あなたは、すべての新しい開発にWCFを使用する必要があります。 –

+0

JSONは決してxmlを好んでいませんでした。どのようにして 'string'を返すのですか? – PUG

答えて

3

カスタムクラスを返し、リストや辞書は使用せず、配列を使用します。ちょうどこれを行い、PHP、Java、.Net開発者はあなたのオブジェクトを扱うことができます。

また、expose JSONもありますが、それはどのように行うかについての説明があります。

また、Web APIを見て、代わりに使用することもできます。

別の注意:PHPは1.1のネイティブSOAPサポートに問題がある可能性があるので、basichttpバインディングを使用するか、クライアントが代わりにSOAP 1.2であるNuSoapを使用する必要があります。

1

可能な限り幅広いクライアントにHTTPサービスを公開したい場合は、SOAPベースのメッセージングを完全に削除し、データをXML、JSON、および/または任意の他のコンテンツタイプとして表現することをお勧めしますサポートするには、というデータが定義されています。

IMHO、この目的のための非常に良いOSSフレームワークはOpenRastaです。

1

RESTfulなサービスを使用して、XMLやJSONなどのプラットフォームに依存しない形式でデータを返すことを検討します。

また、ASP.NET MVCを使用してWCFを利用するサービスを検討してください。それは私の意見ではWCFよりもはるかに優れたシステムです。

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

0

WCFは、簡単にすぐにバインディングとSOAP(basicHttpBinding)やREST(webHttpBinding)スタイルのサービス・インターフェースをサポートすることができます。あなたは確かにASMXを構築することができますが、その用途は枯渇しています。私はちょうどDataTablesのために、のために)を使用していた従来のASMXを置き換えるためにWCF REST/SOAPインタフェースを書いた。現在、相互運用性は、ご使用のプラットフォーム用のHTTPクライアントまたはWSDLクラス・ジェネレータを持つことと同じくらい簡単です。

関連する問題