Hola a tod@s!!!
Recientemente he tenido que crear un cliente para recibir ciertos datos de un WebService. Y como soy un poco nuevo, ví un código que me funcionó a la hora de obtener los datos de respuesta. Mi código ahora está así...
Mediante éstos dos métodos creo la petición y envío al servicio Web
Código C++:
Ver originalpublic HttpWebRequest CreateSOAPWebRequest()
{
//Hacemos la solicitd web
HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(@"url del servicio");
//SOAPAction
Req.Headers.Add(@"SOAPAction:metodo del servicio");
//Tipo de contenido
Req.ContentType = "text/xml;charset=\"utf-8\"";
Req.Accept = "text/xml";
//metodo HTTP
Req.Method = "POST";
//Devuelve HttpRequest
return Req;
}
Y éste es el segundo método, que hace la petición, la envía y recibe los datos
Código C++:
Ver originalpublic void InvokeSevice(String id, String nif, String cod)
{
//Llamando al método CreateSOAPWebRequest
HttpWebRequest request = CreateSOAPWebRequest();
XmlDocument SOAPReqBody = new XmlDocument();
//Solicitud de cuerpo SOAP
SOAPReqBody.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?>
<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tcsa=""http://tcsa.es/"">
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
<tcsa:obtenerDatos>
<tcsa:IDPaciente>" + id + @"</tcsa:IDPaciente>
<tcsa:NIF_Acceso>" + nif + @"</tcsa:NIF_Acceso>
<tcsa:CodCentro>" + cod + @"</tcsa:CodCentro>
</tcsa:obtenerDatos>
</soapenv:Body>
</soapenv:Envelope>");
using (Stream stream = request.GetRequestStream())
{
SOAPReqBody.Save(stream);
}
//Obteniendo Resspuesta de request
using (WebResponse Serviceres = request.GetResponse())
{
using (StreamReader rd = new StreamReader(Serviceres.GetResponseStream()))
{
//leyendo stream
var ServiceResult = rd.ReadToEnd();
xmlrespuesta.Text = ServiceResult.ToString();
rd.Close();
}
}
}
Me funciona, dado que veo los datos que me devuelve, que es en formato XML
Mi duda es la siguiente, ¿Como puedo mostrar los datos mejor ordenados? Al final el XML me devolverá distintos medicamentos del paciente de la siguiente forma:
Código XML:
Ver original<MEDICACION>
<ID>8544447</ID>
<NOM>NOVOCATIL 100ML</NOM>
<INICIO TRATAMIENTO>07/07/2018</INICIO TRATAMIENTO>
<NUM_EXPEDIENTE>887978</NUM_EXPEDIENTE>
<ACTIVO>N</ACTIVO>
<TIPO_TRATAMIENTO>CRONICO</TIPO_TRATAMIENTO>
</MEDICACION>
<MEDICACION>
<ID>5447456</ID>
<NOM>VOLTAREX 20MG</NOM>
<INICIO TRATAMIENTO>01/07/2018</INICIO TRATAMIENTO>
<NUM_EXPEDIENTE>54447</NUM_EXPEDIENTE>
<ACTIVO>S</ACTIVO>
<TIPO_TRATAMIENTO>TEMPORAL</TIPO_TRATAMIENTO>
</MEDICACION>
Pero no se como ordenar esa información en una página asp para que se vea mejor.
Quizás creando una instancia de XmlDocument me ayude, pero hasta ahora no he sabido almacenar los datos de respuesta en un objeto de esa clase.
Si alguien me puede echar una mano se lo agradecería.
Un saludo!!!