2009-07-09 9 views
1

シンプルです。 LINQ-TO-SQLエンティティモデルを作成し、Webサイトを作成し、このサイトにデータサービス(* .svc)を追加し、単純な.NETコンソールアプリケーションを作成して動作させるようにしました。サービスは正常に動作し、変更することはできません。WIN32 DelphiアプリケーションからADO.NETデータサービスを使用する。どうやって?

ここでは、このデータサービスを呼び出す必要があるWIN32用のDelphiアプリケーション(2007)を作成します。 DelphiではSOAPサービスをインポートする際に大きな問題はありませんが、WSDLを提供しないため、このサービスをインポートすることはできません。

したがって、2つのオプションがあります。私はこのデータサービスに基づいてWSDLを生成する方法を見つけ出すことができます。または、私はこのサービスを使用する別の方法を見つけなければなりません。 (あるいは、あきらめるだけですが、この挑戦​​をやめるのは嫌です。)だから、アドバイスはありますか?

答えて

1

ADO.NET Data ServicesはRESTサービスです。 SOAP Webサービスではなく、RESTがWSDLを使用しているとは思いません。 HTTP GET/PUT/POST/DELETEを使用してDelphiからRESTサービスを呼び出すことができます。 IndyのTIdHTTPClientを使うことができます。 URLの例については、http://msdn.microsoft.com/en-us/library/cc668786.aspxを参照してください。結果はXML形式のAtom形式になります。あなたはTXMLDocumentでそれを解析することができます。彼らはまたJSONを返すことができます。

+0

ええ、それは私が恐れていた "他の方法"でしょう。 –

1

おそらく、プロジェクトのJedi "url grabber"コンポーネントを使ってサービスを利用することができます。私は過去にこれらを使ってライブ共有データを取得することができました。あなたの設定がどのように動作するのか正確にはわかりませんが、これらは参考になるかもしれません。

http://www.delphi-jedi.org/

+0

まあ、私自身は、Webからページを取得するために "winhttp.dll"タイプライブラリをインポートする方が好きです。これにより、GET、POST、PUTなどのようなものも可能になります。もう1つの利点は、これがインターネットにアクセスするためのデフォルトのIE設定を使用するため、プロキシや他のものについてあまり心配しないことです。私は過去にJediを使っていましたが、アプリケーションによってはオーバーヘッドが増えると思います。それでも、良い答え。 –

0

また、RESTでうまく動作する使いやすい小さなライブラリsynapseもご覧ください。

関連する問題