Próbuję napisać funkcję, która może wywołać webmethod z webserive, podając nazwę metody i adres URL usługi sieci web. Znalazłem kod na blogu, który robi to dobrze, z wyjątkiem jednego szczegółu. Wymaga to podania XML żądania. Celem jest pobranie szablonu XML żądania z samej usługi. Jestem pewien, że jest to możliwe, ponieważ widzę szablony XML żądań i odpowiedzi, jeśli mam dostęp do adresu URL usługi internetowej w mojej przeglądarce.Programowo wywoływać webmethods w C#
Jest to kod, który wywołuje WebMethod programowo:
XmlDocument doc = new XmlDocument();
//this is the problem. I need to get this automatically
doc.Load("../../request.xml");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://localhost/dummyws/dummyws.asmx?op=HelloWorld");
req.ContentType = "text/xml;charset=\"utf-8\"";
req.Accept = "text/xml";
req.Method = "POST";
Stream stm = req.GetRequestStream();
doc.Save(stm);
stm.Close();
WebResponse resp = req.GetResponse();
stm = resp.GetResponseStream();
StreamReader r = new StreamReader(stm);
Console.WriteLine(r.ReadToEnd());
jak można wywołać metodę (serwis internetowy lub inną), jeśli nie wiesz z góry, jakie parametry wymaga? –
Załóżmy na razie, że te webmethods nie wymagają żadnych parametrów. – hancock
Czy usługa internetowa udostępnia opis WSDL? – dariom