Webservices (soap,rest,...) - Web Services SOAP ASP.NET

   
Vista:
Imágen de perfil de portaDark

Web Services SOAP ASP.NET

Publicado por portaDark (2 intervenciones) el 03/11/2015 23:34:28
Hola alguien que me pueda ayudar...
Tengo lo siguiente, peticiones a un web service y el problema es que no puedo guardar el resultado en una variable en lenguaje c#, probe el webservices en soapUI y segun esto el resultado que me genera cada uno es lel siguiente:

1.-Para este servicio se envia un usuario y una contraseña y regresa este resultado(que es una cadena)...
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<IniciarSesionResponse xmlns="http://www.libroazul.com/ws/">
<IniciarSesionResult>NzgjMjMxMzM3LzM2</IniciarSesionResult>
</IniciarSesionResponse>
</soap:Body>
</soap:Envelope>

2.Para este servicio se envia una llave(el string anterior), y dos indices mas, y regresa como resultado...
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<ObtenerAniosResponse xmlns="http://www.libroazul.com/ws/">
<ObtenerAniosResult>
<Catalogo>
<Clave>2014</Clave>
<Nombre>2014</Nombre>
</Catalogo>
<Catalogo>
<Clave>2013</Clave>
<Nombre>2013</Nombre>
</Catalogo>
<Catalogo>
<Clave>2012</Clave>
<Nombre>2012</Nombre>
</Catalogo>
<Catalogo>
<Clave>2011</Clave>
<Nombre>2011</Nombre>
</Catalogo>
<Catalogo>
<Clave>2010</Clave>
<Nombre>2010</Nombre>
</Catalogo>
</ObtenerAniosResult>
</ObtenerAniosResponse>
</soap:Body>
</soap:Envelope>


el el primer web services ya pude guardar la cadena en una variable en lenguaje c#, pero lo que no puedo hacer es guardar el resultado del segundo webservices, ya lo inrtente con list, array, arraylist, pero tengo problemas en cuato al tipo de dato, es decir intente usar string y pues obvio no lo acepto, entonces cree una clasea que se guardara esos resultados per tampoco.
Lo que quisiera saber es como hacer para que el resultado del segundo web services que me regresa lo pueda guardar en una variable en c# para poder utilizarlo y mostrarlo en un combo o dropdownlist...
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Web Services SOAP ASP.NET

Publicado por David (8 intervenciones) el 03/11/2015 23:54:26
¿Cómo consumes el web service? ¿Desde una referencia de servicio o de otra forma?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de portaDark

Web Services SOAP ASP.NET

Publicado por portaDark (2 intervenciones) el 04/11/2015 18:05:41
Hola gracias david por tu respuesta, la referencia ya la hice en mi proyecto, incluso he podido consumir el metodo del de iniciarsesion de ese webservices sin ningun problema, claro ese metodo solo devuelve una cadena de tipo string, por consecuencia lo pude poner directamente en un label o guardarlo en una variable de tipo string. Lo que no entiendo muy bien es que el web service con el metodo ObtenerPorAnios me regresa una lista, o estructura de datos, segun yo y el xml que regresa ese metodo y que he probado en soapui es un tag "Catalogo" entonces cuando accedo al metodo obtenerPorAnios regresa una estructura de datos pero a que tipo de dato lo debo de asignar, como lo comente en la publicacion anterior ya lo intente con deiferentes estructuras de datos pero me dice que no se puede convertir implicitamente el tipo referenciaServicioWeb.Catalogo[] a el tipo de estructura que quiero utilizar...
de donde o como puedo obtener ese tipo de dato, es decir como se supone que se declara o si tengo que importar algo...
Espero haberme explicado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Web Services SOAP ASP.NET

Publicado por David (8 intervenciones) el 05/11/2015 18:37:01
No sé qué estructura quieres usar, pero tal como pones la llamada al web Service te devuelve un array con todos los elementos, cada uno de ellos con una propiedad Clave y una propiedad Nombre.

Intenta explicarte mejor porque no veo que quieres hacer.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Web Services SOAP ASP.NET

Publicado por Ismael (1 intervención) el 06/11/2015 18:45:23
Hola que tal PortaDark, el tipo de estructura que debes utilizar es el que te esta indicando ahi, que por lo que mencionas es referenciaServicioWeb.Catalogo[], creas una variable con ese tipo de dato, claro si eres principiante pues se te hace raro ver ese tipo de dato, ese tipo de dato inicia su existencia en el momento que haces la referencia de tu web service XD; entonces quedaria algo como esto:
referenciaServicioWeb.Catalogo[] restultado;
a esta variable le asignas el resultado del metodo que intentas llamar, algo como esto:
resultado = webservice.metodo();
ahora resultado tiene lo que necesitas que es la estructura de datos, aqui solo lo que tienes que hacer es
verificar que la estructura de datos te regrese lo que quieres y no cosas raras, por ejemplo para ver el valor
seria algo como esto :
resultado.Distinct();
resultado.getValue(indice);
resultado.ElementAt(indice);
resultado.ElementAtOrDefault(indice).Atributo;
eso ya va a ser dependiendo de que resultado quieres y cual es la estructura de los datos que te esta dando como resultado el webservices...

Espero poder aver ayudado, y que sea lo que buscas Saludos!!!...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar