Conectarse a webservice desde Velneo

Buenos días,

Necesito conectarme y hacer uso de un webservice en el cual como respuesta obtendré un XML.

He probado con Postman y funciona, pero a la hora de realizarlo en Velneo no consigo hacerlo funcionar.

Parece ser que “funciona” pero en el alert me devuelve: [object Object] y no consigo poder tratar la respuesta.

¿Qué estoy haciendo mal? Os pongo el proceso JS en el que uso la librería de vajax.

Gracias por vuestra ayuda,

Buenas claguna

Se necesitaría más información de que te devuelve ese XML,supongo que por tu tipo de respuesta que es “arraybuffer”,te devuelve información de un fichero, que tendrás que escribir en disco. si quieres mostrar el contenido de ese array, puedes hacer un: alert(JSON.stringify(data)); y verás el siguiente contenido parecido a : [2,30,405,[35,34,5,3,2]…

Tengo que decir que la clase vAJAX en Velneo, solo esta programada con dos tipos de respuesta que son, JSON o como tienes en este caso, un fichero, de este modo lo indica el creador en la documentación oficial.

En el caso de que es WebService te devolviera un XML o un texto, tendrás que usar la clase XMLHTTPREQUEST, que en el responseType, admite la opción “text”

Saludos

Hola fran_garcia,

Gracias por tu ayuda, pero creo que voy a preguntarte más sobre la clase XMLHTTPREQUEST ya que el webservice devuelve un XML.

Nunca he usado la clase XMLHTTPREQUEST, ¿cómo puedo convertir la llamada que he realizado con la clase vAJAX a la clase XMLHTTPREQUEST?

Gracias de nuevo y disculpa

Hola

La verdad es muy sencillo, adaptado a tu caso

importClass("XMLHttpRequest");

// AQUI PONES EL XML QUE DESEAS MANDAR
var data = "<Holding></Holding>;
var xhr = new XMLHttpRequest();
var url =  "URL";
xhr.open("POST",url,false);
xhr.setRequestHeader("Content-Type","application/xml");

//Esperamos a que termine la función y pintamos la respuesta
xhr.onreadystatechange = function()
{
	if (xhr.readyState === 4)
	{
		if (xhr.status == 201) alert("xhr.response");
		

		
	}
}
// ENVIAMOS LOS DATOS A LA PETICIÓN //
xhr.send(data);

Con eso ya te debería de pintar lo que te devuelve la API

1 me gusta

Muchas gracias Fran!

Me sirvió y aproveché a cambiar alguna cosilla para automatizarlo más aún!

Gracias de nuevo