Webサービスを照会して、サポートするメッセージを確認する簡単な方法はありますか?私が取り組んでいるC#.NETアプリケーションは、送信しようとしているメッセージを実装していない古いバージョンのWebサービスを処理できる必要があります。 Webサービスはバージョン番号を公開しないので、Plan Bはメッセージが定義されているかどうかを確認します。メッセージ一覧のWebサービスを照会しますか?
私は、WSDLのHTTPリクエストを作成して解析することができますが、そのパスを下る前に、より簡単な方法がないことを確認したいと思います。
更新: WSDLを取得してメッセージを直接取得することに決めました。
HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create("http://your/web/service/here.asmx?WSDL");
webRequest.PreAuthenticate = // details elided
webRequest.Credentials = // details elided
webRequest.Timeout = // details elided
HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse();
XPathDocument xpathDocument = new XPathDocument(webResponse.GetResponseStream());
XPathNavigator xpathNavigator = xpathDocument.CreateNavigator();
XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(new NameTable());
xmlNamespaceManager.AddNamespace("wsdl", "http://schemas.xmlsoap.org/wsdl/");
foreach(XPathNavigator node in xpathNavigator.Select("//wsdl:message/@name", xmlNamespaceManager))
{
string messageName = node.Value;
}