3


0

XDocumentを使用してWebサービスを呼び出す方法

次のアドレスにasmx Webサービスがあるとします。http://localhost/BudgetWeb/Service.asmx

このWebサービスには、次のシグネチャを持つWebメソッドがあります。

string GetValue(string key)

このGetValueメソッドは、次のような文字列を返します。

250.00

これをしたい場合はどうすればよいですか:

XDocument doc = XDocument.Load("http://localhost/BudgetWeb/Service.asmx?op=GetValue&key=key1")

これは機能せず、XDocument.Loadが実際にサーバー上のWebメソッドを呼び出すことはないと確信しています。 uriがロードできるファイルを指すと期待していると思います。 Webメソッドを呼び出すには、Webプロキシクラスが必要で、それを使用して `string GetValue(string key)`を呼び出す必要があり、Webプロキシクラスから返された値を使用して渡すことができると思いますXDocument.Loadメソッドに。

私の理解は正しいですか、またはXDocument.Loadが実際にサーバー上のWebメソッドを呼び出す方法がありますか?

2 Answer


5


これを使ってみてください。

XDocument doc = XDocument.Load(
        "http://localhost/BudgetWeb/Service.asmx/GetValue?key=key1");

*編集:*ちょうど理解:無効なURIを使用している:

http://localhost/BudgetWeb/Service.asmx?op=GetValue&key=key1

する必要があります

http://localhost/BudgetWeb/Service.asmx/GetValue?key=key1

私はこのコードスニペットを使用しています:

string uri = "http://www.webservicex.net/stockquote.asmx/GetQuote?symbol=MSFT";
XDocument doc1 = XDocument.Load(uri);
Console.WriteLine(doc1.Root.Value);  // MSFT...


3


OK、問題が見つかりました。 Webサービスのweb.configで、これを追加する必要があります。


皆の提案に感謝します。特に、その実例が私を正しい方向に導いたルーベンス・ファリアスに感謝します。