Estoy tratando de escribir una función que pueda llamar a un webmethod desde un webserive dado el nombre del método y la URL del servicio web. Encontré un código en un blog que lo hace bien excepto por un detalle. Requiere que se proporcione el XML de la solicitud también. El objetivo aquí es obtener la plantilla XML de solicitud del servicio web en sí. Estoy seguro de que esto es posible de alguna manera porque puedo ver las plantillas XML tanto de solicitud como de respuesta si accedo a la URL de un servicio web en mi navegador.Llamar por programación a webmethods en C#
Este es el código que llama a la WebMethod mediante programación:
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());
¿cómo se puede llamar a un método (servicio web o de otro tipo) si no se conoce desde el principio qué parámetros requiere? –
Supongamos por ahora que estos métodos web no requieren ningún parámetro. – hancock
¿El servicio web expone una descripción WSDL? – dariom