Consumo servicio Web
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Este objeto nos permite consumir un servicio Web vía .
Para crear un objeto de este tipo seleccionar la opción nuevo objeto/consumo servicio web del menú objetos de Velneo vDevelop o a través de la galería de objetos.
Etiqueta alfanumérica que identifica al objeto. Este identificador será el que se usa para referenciarlo en los inspectores y en las propiedades de otros objetos.
Etiqueta alfanumérica que servirá como descriptor del objeto. Es el texto que se presentará al usuario final de la aplicación para referenciar al objeto. Podemos definir una etiqueta por cada idioma presente en el proyecto.
Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Esta propiedad nos permite documentar el uso del objeto.
Si este valor es verdadero, el proceso de respuesta se ejecutará también de forma asíncrona.
Representa el número de milisegundos que una petición puede tomar antes de ser automáticamente terminada.
Si no se especifica ningún valor, se define como valor por defecto 30 minutos.
Si el servicio Web a consumir requiere certificados, en este parámetro podemos poner la senda donde tengamos guardado el certificado requerido.
El certificado debe establecerse únicamente por uno de los dos métodos.
El certificado que se utilice debe estar en formato p12.
Si el servicio Web a consumir requiere certificados, en este parámetro podemos poner la senda donde tengamos guardado la clave del certificado requerido.
El certificado que se utilice debe estar en formato p12.
En caso de ser positivo el resultado de la fórmula, el webservice será ejecutado ignorando los errores.
Por defecto se asume que no se ignoran los errores.
Este parámetro en Velneo Web no tiene efecto. No es posible ignorar los errores de TLS/SSL en el navegador ya que no lo permite.
En este sub-objeto podemos definir los parámetros que se necesitan para consumir el servicio Web.
Las propiedades de un parámetro son:
Etiqueta alfanumérica que identifica al parámetro. Este identificador será el que se usa para referenciarlo en los inspectores y en las propiedades de otros objetos.
Etiqueta alfanumérica con el nombre del parámetro.
Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Esta propiedad nos permite documentar el uso del parámetro.
En este sub-objeto podemos definir las cabeceras que se necesitan para consumir el servicio Web.
Las propiedades de una cabecera son:
Etiqueta alfanumérica que identifica al parámetro. Este identificador será el que se usa para referenciarlo en los inspectores y en las propiedades de otros objetos.
Etiqueta alfanumérica con el nombre de la cabecera.
Si en un objeto consumo servicio Web creamos una cabecera CONTENT-LENGTH, tomará ésta, si no la creamos, la enviará automáticamente como cabecera calculada.
Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Esta propiedad nos permite documentar el uso de la cabecera.
Recogerá toda la información de la respuesta en formato JSON.
Recogerá el texto de la respuesta a la llamada al servicio Web.
Recogerá el status de la llamada. Lo que se recibe es el código de error http (XMLHttpRequest.status).
En el enlace siguiente encontrarás los códigos de estado y lo que Apache devuelve:
Recogerá el texto del status de la llamada. Se recibe el estado http en texto (XMLHttpRequest.statusText).
Recogerá el cuerpo de la petición.
Recogerá el cuerpo de la petición cuando se trate de un binario.
Se ha identificado una vulnerabilidad relacionada con el manejo de conexiones HTTP2, asignada como CVE-2024-39936. Esta falla permite enviar datos a un servidor con un certificado TLS no coincidente que puede ser explotado mediante técnicas Man-in-the-middle en casos como redirección y otros.
En Velneo podremos hacerlo mediante la configuración de una clave beta:
http2NotSupported
= C5A39F2332858154F02E045F64F7FFF8985F4F41
Configuración de sistema: Escribir cadena de texto ( "Velneo", "beta", "
http2NotSupported", "
C5A39F2332858154F02E045F64F7FFF8985F4F41")
Permite establecer la URL del servicio con el que queremos conectar. Este se establecerá mediante una fórmula que podremos escribir usando el . Para ello pulsar el botón que aparece al editar esta propiedad.
Permite establecer el método HTTP a usar para conectar con el servicio Web, tal como GET, POST, etc. Este se establecerá mediante una fórmula que podremos escribir usando el . Para ello pulsar el botón que aparece al editar esta propiedad.
En este parámetro estableceremos, mediante una , un valor booleano -opcional- para indicar si realizar o no la operación de forma asíncrona. Si este valor es falso, la función de envío no retorna hasta que la respuesta es recibida.
Si el objeto no tiene definidos , en esta propiedad podremos especificar, mediante una , el cuerpo de la petición.
Si el objeto no tiene definidos , en esta propiedad podremos especificar, mediante una , si el cuerpo de la petición es un binario o no. Si se deja vacío no se enviará un binario.
Si el objeto no tiene definidos , y lo que vamos a enviar en el cuerpo de la petición es un binario, en esta propiedad podremos especificar, mediante una , la senda de dicho binario.
En esta propiedad podremos especificar, mediante una , si el cuerpo de la petición es un binario o no. Si se deja vacío no se esperará un binario.
Si lo que vamos a recibir es un binario, en esta propiedad podremos especificar, mediante una , la senda donde guardar el binario recibido.
Si la respuesta es binaria y no se especifica nada en este paráemtro, contendra la respuesta en base64
de código nativo Velneo que recogerá la respuesta del servicio Web.
Si el servicio Web a consumir requiere certificados, en este parámetro podemos poner el contenido del certificado requerido mediante una .
Esta opción solamente es funcional en Windows y en Linux pero no en macOS, dado que, al contrario que en Windows y Linux que usan Open SSL, macOS usa un sistema propio llamado Secure Transport SSL, que no es funcional con este sistema. En el caso de macOS debemos especificar directamente el .
En este parámetro podemos especificar la clave del certificado mediante una . Debemos especificar la clave propiamente dicha, no una senda de un fichero externo.
Si el certificado require passphrase, lo estableceremos en este parámetro mediante una .
Mediante una podemos configurar permitirá configurar si se ignoran o no los errores de TLS/SSL.
Usando los parámetros se desactiva el y se usarán del modo siguiente:
Si el método del servcicio Web es Get, estos parámetros se añadirán a la .
Si el método del servcicio Web es Post, estos parámetros se enviarán como internos en el post de la . En este paso se aplica automáticamente: Content-Type": "application/x-www-form-urlencoded
.
Si en la ya teníamos declarado algún parámetro, los que definamos como sub-objetos se añadirán a éstos.
Si queremos hacer uso del , no debemos usar parámteros y entonces tendremos que definir el y el Content-type de forma manual por medio de las .
En esta propiedad especificaremos, mediante una , el identificador del parámetro a enviar en la petición.
Esta propiedad estará activa si lo que vamos a enviar en la petición no es un binario y nos permitirá establecer el valor del parámetro a enviar mediante una .
Si el parámetro a enviar es un binario, mediante una , estableceremos la senda donde lo tenemos alojado.
Esta propiedad nos permite establecer una condición para el envío de un parámetro. Para ello hemos de establecer la que debe cumplirse para que el parámetro sea enviado. Si no se especifica ninguna fórmula, el parámetro se enviará siempre.
En esta propiedad especificaremos, mediante una , el nombre de la cabecera de la petición.
En esta propiedad especificaremos, mediante una , el valor de la cabecera a enviar en la petición.
Esta propiedad nos permite establecer una condición para el envío de una cabecera. Para ello hemos de establecer la que debe cumplirse para que el parámetro sea enviado. Si no se especifica ninguna fórmula, el parámetro se enviará siempre.
Cuando creamos un objeto de este tipo, Velneo le añade automáticamente las que nos permiten almacenar los datos de la respuesta del servicio. Son las siguientes:
Recogerá el texto del mensaje de error. Se recibe el numero de error interno de QNetworkReply del XMLHttpRequest ( XMLHttpRequest.errorCode ). .
Además, el programador, en función de sus necesidades, podrá añadir las siguientes desde la opción Variables especiales del menú que se despliega al pulsar el botón del :
Para realizar la petición al servicio Web dispararemos este objeto desde un con y la respuesta la obtendremos en el proceso configurado en la propiedad .
En las propiedades de tipo de este objeto podemos hacer uso de para poder asignarles contenido de forma dinámica con el comando de instrucción de proceso antes de dispararlo.
Para enviar un objeto binario estableceremos un 1 en la propiedad y estableceremos en la propiedad la senda del fichero donde se leerá el body. Otra posibilidad sería dejar la senda vacía y poner en base64 el body.
Para recibir un objeto binario debemos establecer un 1 en la propiedad , establecer con la senda del fichero donde se escribirá la respuesta. Otra posiblidad sería dejar la senda vacía y entonces rellenará en el la variable RESPONSE_TEXT con el base64 de la respuesta.
El objeto, si bien es funcional en Velneo Web, en determinadas circunstancias pueden no ser funcional cuando el elemento al que se hace referencia no tener una configuración CORS adecuada. Ver el de la documentación.
Para evitar el problema con servidores web no conocidos en aplicaciones que utilicen y , se recomienda desactivar HTTP2.
Las claves beta son entradas en la rama beta de Velneo del registro del sistema operativo. Se recomienda generarlas desde un proceso con el comando de instrucción de proceso para establecerlos, ejecutándolo en 1er plano (si vamos a usar esos objetos en el cliente) o en 3er plano (si los vamos a usar en el servidor). Los parámetros se resolverán como indicamos a continuación: