Este tema contiene los apartados siguientes:
Utilice el nodo HTTPRequest para interactuar con un servicio web utilizando todo o parte del mensaje de entrada como petición que se envía a dicho servicio. También puede configurar el nodo para crear un nuevo mensaje de salida a partir del contenido del mensaje de entrada aumentado con el contenido de la respuesta del servicio web antes de propagar el mensaje a nodos subsiguientes del flujo de mensajes.
Este nodo crea una petición HTTP a partir del contenido especificado del mensaje de entrada y la envía al servicio web. Recibe la respuesta del servicio web y la analiza para su inclusión en el árbol de salida. Genera cabeceras HTTP si así lo precisa la configuración.
Puesto que el nodo interactúa directamente con un servicio externo utilizando TCP/IP, puede experimentar los tres tipos de error siguientes:
Puede utilizar este nodo en un flujo de mensajes que no contenga un nodo HTTPInput o HTTPReply.
El nodo HTTPRequest maneja mensajes en los dominios de mensajes siguientes:
El nodo HTTPRequest se representa en el área de trabajo mediante el icono siguiente:
Puede utilizar este nodo para configurar un flujo de mensajes que actúe como un intermediario del servicio web de dos modos diferentes:
Consulte el nodo HTTPInput, donde se proporciona una descripción de esta opción y se incluyen dos ejemplos de utilización.
Puede configurar flujos de mensajes que reciban mensajes de entrada de clientes utilizando cualquier transporte para conectar al intermediario, y envíen mensajes de salida a clientes que utilicen el mismo o cualquier otro transporte para conectar al intermediario. Puede utilizar el nodo HTTPRequest en un flujo de mensajes para interactuar con un servicio web, sin tener en cuenta la aplicación origen que inicia el mensaje de entrada.
Por ejemplo, una aplicación WebSphere MQ transfiere un mensaje a una cola. Se diseña un flujo de mensajes que recupere el mensaje (nodo MQInput) y lo propague a un nodo HTTPRequest. El nodo HTTPRequest interactúa con un servicio web que devuelve información asociada al contenido del mensaje de entrada original en su mensaje de respuesta. Por ejemplo, puede añadir precios actuales de valores a una lista de opciones de valores, o bien, devolver listados de URL en respuesta a una petición de búsqueda. El nodo HTTPRequest pasa la información a un nodo Compute, que genera un respuesta para la aplicación de origen (a través de un nodo MQReply).
Se puede configurar al transferir una instancia del nodo HTTPRequest a un flujo de mensajes. Pulse el botón derecho del ratón en la vista del editor y, a continuación, pulse en Propiedades. Se muestran las propiedades básicas del nodo.
Todas las propiedades obligatorias para las que debe entrar un valor (las que no tienen un valor por omisión definido) se muestran marcadas con un asterisco en el diálogo de propiedades.
Configure el nodo HTTPRequest tal como se indica a continuación:
Las dos primeras opciones proporcionan métodos dinámicos para establecer un URL para cada mensaje de entrada a medida que pasa a través del flujo de mensajes. Si desea utilizar cualquiera de estas opciones, debe incluir un nodo Compute en el flujo de mensajes antes del nodo HTTPRequest para crear e inicializar el valor necesario.
La tercera opción proporciona un valor que es fijo para cada uno de los mensajes que se reciben en este nodo. Es posible que le resulte útil como valor por omisión que puede utilizar si los demás campos no se han creado o si contienen un valor nulo. Si alguno de los campos contiene un valor, el valor de esta propiedad se ignora.
Asegúrese de que el valor que establece en X-Original-HTTP-URL, LocalEnvironment.Destination.HTTP.RequestURL o en esta propiedad sea válido; si no es así, el nodo genera una excepción y el mensaje se propaga al terminal de anomalías.
Si desea que el mensaje de solicitud contenga un subconjunto del mensaje de entrada, deseleccione este recuadro de selección y complete la propiedad Ubicación del mensaje de solicitud en el árbol.
Puede entrar cualquier referencia de campo ESQL, incluidas expresiones dentro de la referencia. Por ejemplo, entre:
InputRoot.XMLNS.ABC
Si selecciona el recuadro de selección Utilizar todo el mensaje de entrada como petición, esta propiedad se ignora.
Cuando se analiza el contenido del árbol de mensajes adecuado para crear una corriente de bits, se utilizan las propiedades del mensaje (dominio, conjunto, tipo y formato) asociadas al cuerpo del mensaje de entrada y almacenadas en la carpeta Propiedades.
Si desea que el mensaje de respuesta del servicio web se incluya en el mensaje de salida con parte del contenido del mensaje de entrada, deseleccione este recuadro de selección y complete la propiedad Ubicación del mensaje de respuesta en el árbol. Si deselecciona esta propiedad, el nodo copia el mensaje de entrada en el mensaje de salida y escribe el mensaje de respuesta del servicio web sobre el contenido del mensaje de salida en la ubicación especificada (en mensaje de entrada en sí mismo no se modifica).
Puede entrar cualquier referencia de campo ESQL válida, incluidas expresiones dentro de la referencia, e incluir nuevas referencias de campos (para crear un nuevo nodo en el árbol de mensajes para la respuesta). Por ejemplo, entre:
OutputRoot.XMLNS.ABC.DEFo bien
Environment.WSReply
Si selecciona el recuadro de selección Sustituir mensaje de entrada por respuesta de servicio de web, esta propiedad se ignora.
Cuando se analiza la corriente de bits de respuesta para crear el contenido del árbol de mensajes, se utilizan las propiedades del mensaje (dominio, conjunto, tipo y formato) que se han especificado en las propiedades por omisión del nodo (descritas más abajo).
Si no desea generar una HTTPRequestHeader para el mensaje de solicitud, deseleccione el recuadro de selección Generar cabeceras HTTP por omisión desde entrada (el valor por omisión está seleccionado). Para controlar el contenido de HTTPRequestHeader que se incluye en el mensaje de solicitud, incluya un nodo Compute que añada una HTTPRequestHeader al mensaje de entrada antes del nodo HTTPRequest al flujo de mensajes y deseleccione el recuadro de selección.
De este modo, también se añaden las cabeceras de servicios web que se muestran en la tabla siguiente, con valores por omisión, si no están presentes en HTTPRequestHeader o HTTPInputHeader.
Cabecera | Valor por omisión |
---|---|
SOAPAction | "" (serie de caracteres vacía) |
Content-Type | text/xml; charset=utf-8 |
Host | Nombre del sistema principal al que se va a enviar la petición. |
También añade la cabecera Content-Length opcional con el valor calculado correcto, aunque no esté presente en HTTPRequestHeader o HTTPInputHeader.
Si desea que el mensaje de error del servicio web se incluya en el mensaje de salida con parte del contenido del mensaje de entrada, deseleccione este recuadro de selección y complete la propiedad Ubicación del mensaje de error. Si deselecciona esta propiedad, el nodo copia el mensaje de entrada en el mensaje de salida y escribe el mensaje de error del servicio web sobre el contenido del mensaje de salida en la ubicación especificada (el mensaje de entrada en sí mismo no se modifica).
Puede entrar cualquier referencia de campo ESQL válida, incluidas expresiones dentro de la referencia y nuevas referencias de campos (para crear un nuevo nodo en el árbol de mensajes para la respuesta). Por ejemplo, entre:
OutputRoot.XMLNS.ABC.DEFo bien
Environment.WSError
Si selecciona el recuadro de selección Sustituir entrada por error, esta propiedad se ignora.
Si el servicio web devuelve un mensaje de error, los valores de estas propiedades se ignoran y el analizador BLOB analiza el mensaje.
Deje el campo Conjunto de mensajes en blanco para los analizadores XML, XMLNS, JMS y BLOB.
Deje el campo Tipo de mensaje en blanco para los analizadores XML, XMLNS, JMS y BLOB.
Deje el campo Formato del mensaje en blanco para los analizadores XML, XMLNS, JMS y BLOB.
Los destinos de las anomalías se comportan igual que en el caso de la salida del nodo Trace. Así, si, por ejemplo, se selecciona Rastreo de usuario, las entradas de rastreo se escriben sin tener en cuenta el valor del distintivo del rastreo de usuario para el flujo de mensajes.
Pulse el botón en Cancelar para cerrar el diálogo y descartar todos los cambios que ha realizado en las propiedades.
Conecte el terminal de anomalías, el terminal de errores o el terminal de salida de este nodo a otro nodo de este flujo de mensajes para continuar el proceso de mensajes, procesar errores o enviar el mensaje a un destino adicional. Si no conecta el terminal de errores, el mensaje se descarta. Si no conecta el terminal de anomalías, el intermediario proporciona proceso de errores por omisión, que se describe en el apartado Manejo de errores en flujos de mensajes.
Los terminales del nodo HTTPRequest se describen en la tabla siguiente:
Terminal | Descripción |
---|---|
Terminal de entrada | Terminal de entrada que acepta un mensaje para que lo procese el nodo. |
Terminal de anomalías | Terminal de salida al que se direcciona el mensaje si se detecta una anomalía durante el proceso en el nodo. |
Terminal de salida | Terminal de salida al que se direcciona el mensaje si representa la finalización satisfactoria de la petición del servicio web, y si se requieren procesos ulteriores en el flujo de mensajes. |
Terminal de errores | Terminal de salida al que se direccionan los mensajes que incluyen un código de estado HTTP que no está dentro del rango de 200 a 299, incluidos códigos de redirección (3xx) si no se ha establecido la propiedad Seguir redirección HTTP. |
En las tablas siguientes se describen las propiedades del nodo; la columna que tiene el encabezamiento M indica si se trata de una propiedad obligatoria (marcada con un asterisco en el diálogo de propiedades si se debe especificar un valor cuando no se ha definido ningún valor por omisión), la columna que tiene el encabezamiento C indica que se trata de una propiedad configurable (se puede cambiar el valor cuando se añade el flujo de mensajes al archivo bar para su difusión).
Las propiedades básicas del nodo HTTPRequest se describen en la tabla siguiente:
Propiedad | M | C | Valor por omisión | Descripción |
---|---|---|---|---|
URL de servicio de web | Sí | Sí | URL del servicio web. Debe proporcionarlo con el formato
http://<nombreSistemaPrincipal>[:<puerta>]/[<víaAcceso>] donde
|
|
Tiempo de espera excedido de petición | Sí | No | 120 | Tiempo, en segundos, que espera el nodo una respuesta del servicio web. El rango válido es de 1 a (231)-1. No puede entrar un valor que represente una espera ilimitada. |
Ubicación de proxy HTTP | No | Sí | Servidor proxy al que se envían las peticiones. Debe tener el formato nombreSistemaPrincipal:puerta. | |
Seguir redirección HTTP | Sí | No | Deseleccionado | Si se deben seguir las redirecciones HTTP. Si selecciona este recuadro de selección, se siguen las redirecciones. Si deselecciona este recuadro de selección, las redirecciones no se siguen. |
Las propiedades avanzadas del nodo HTTPRequest se describen en la tabla siguiente:
Propiedad | M | C | Valor por omisión | Descripción |
---|---|---|---|---|
Utilizar todo el mensaje de entrada como petición | Sí | No | Seleccionado | Si se debe pasar todo el cuerpo del mensaje de entrada al servicio web. Si selecciona este recuadro de selección, se realiza esta acción. Si deselecciona este recuadro de selección, debe especificar Ubicación del mensaje de solicitud en el árbol. |
Ubicación del mensaje de solicitud en el árbol | Sí | No | InputRoot | Ubicación de inicio a partir de la que se crea la corriente de bits para el envío al servicio web. Esta propiedad toma el formato de una referencia de campo ESQL. |
Sustituir mensaje de entrada por respuesta de servicio de web | Sí | No | Seleccionado | Si el contenido del mensaje de respuesta del servicio web sustituye la copia del mensaje de entrada como contenido del mensaje de salida creado. Si selecciona este recuadro de selección, se realiza esta acción. Si deselecciona este recuadro de selección, debe especificar Ubicación del mensaje de respuesta en el árbol. |
Ubicación del mensaje de respuesta en el árbol | Sí | No | OutputRoot | Ubicación de inicio en la que se almacenan los elementos analizados de la corriente de bits de respuesta del servicio web. Esta propiedad toma el formato de una referencia de campo ESQL. |
Generar cabeceras HTTP por omisión desde entrada | Sí | No | Seleccionado | Si se debe generar una HTTPRequestHeader. Si selecciona este recuadro de selección, se realiza esta acción. Si deselecciona este recuadro de selección, debe haber una HTTPRequestHeader válida en el mensaje de entrada. |
Las propiedades de error del nodo HTTPRequest se describen en la tabla siguiente:
Propiedad | M | C | Valor por omisión | Descripción |
---|---|---|---|---|
Sustituir entrada por error | Sí | No | Seleccionado | Si se debe sustituir el contenido del mensaje de entrada por el contenido del mensaje de error. Si selecciona este recuadro de selección, se realiza la acción. Si deselecciona este recuadro de selección, debe especificar Ubicación del mensaje de error. |
Ubicación del mensaje de error | Sí | No | OutputRoot | Ubicación de inicio en la que se almacenan los elementos analizados de la corriente de bits de error del servicio web. Esta propiedad toma el formato de una referencia de campo ESQL. |
Las propiedades por omisión del nodo HTTPRequest se describen en la tabla siguiente:
Propiedad | M | C | Valor por omisión | Descripción |
---|---|---|---|---|
Dominio del mensaje | No | No | Dominio del mensaje de respuesta que se ha recibido del servicio web. | |
Conjunto de mensajes | No | No | Conjunto de mensajes del mensaje de respuesta. | |
Tipo de mensaje | No | No | Tipo del mensaje de respuesta. | |
Formato del mensaje | No | No | Formato del mensaje de respuesta. |
Las propiedades de validación del nodo HTTPRequest se describen en la tabla siguiente:
Propiedad | M | C | Valor por omisión | Descripción |
---|---|---|---|---|
Validar | Sí | No | Ninguna | Si debe llevarse a cabo la validación. Los valores válidos son Ninguna y Contenido y valor. |
Acción por anomalía | Sí | No | Rastreo de usuario | Lo que sucede si la validación da error. Sólo puede establecer esta propiedad si establece Validar en Contenido y valor. Los valores válidos son Rastreo de usuario, Anotaciones de error locales y Excepción. |
Cronometraje | Sí | No | Diferido | Cuando se produce la validación. Sólo puede establecer esta propiedad si establece Validar en Contenido y valor. Los valores válidos son Diferido, Inmediato y Completo. |
Incluir todas las limitaciones de valores | Sí | No | Seleccionado | Esta propiedad no se puede cambiar. |
Arreglo | Sí | No | Ninguno | Esta propiedad no se puede cambiar. |
Las propiedades de descripción del nodo HTTPRequest se describen en la tabla siguiente:
Propiedad | M | C | Valor por omisión | Descripción |
---|---|---|---|---|
Descripción corta | No | No | Descripción breve del nodo. | |
Descripción larga | No | No | Texto que describe la finalidad del nodo en el flujo de mensajes. |
Conceptos relacionados
WebSphere MQ Web Services Transport
Flujos de mensajes
ESQL
Referencias de campo ESQL
Tareas relacionadas
Cómo decidir los nodos que utilizar
Manejo de errores en flujos de mensajes
Configuración de ESQL dentro de nodos
Edición de propiedades configurables
Referencia relacionada
Nodo Compute
Nodo HTTPInput
Nodo HTTPReply
Nodo MQInput
Nodo MQReply
Avisos |
Marcas registradas |
Descargas |
Biblioteca |
Soporte |
Información de retorno (feedback)
![]() ![]() |
ac04595_ |