Comunicar con servidores HTTP

Para enviar un comando a un servidor HTTP, necesita un objeto de SenderDestination para comunicarse con un punto final. El objeto de SenderDestination es responsable de poner en cola los mensajes para la entrega y de obtener los mensajes entrantes para la entrega. La clase de DestinationFactory crea y mantiene una lista de objetos de Destination que puede utilizar para comunicarse con un punto final.

Antes de crear un SenderDestination, debe comprobar si existe uno invocando getSenderDestination(). Puede acceder a un destino existente proporcionando el nombre del objeto de Context que suministró cuando invocó cualquiera de los métodos de DestinationFactory.create...().

Cuando termine de intercambiar datos con un punto final, debe invocar DestinationFactory.release() o DestinationFactory.destory(). El método release() elimina la asociación entre un Destination y las colas de mensajes entrantes y salientes. Después de invocar release(), la API sigue intentando entregar los mensajes de la cola. Puede utilizar release() cuando su aplicación no esté en estado de envío y recepción de mensajes. Además de eliminar la asociación entre un Destination y una cola del mensaje, destroy() también destruye la cola del mensaje. Después de invocar destory(), se eliminará cualquier mensaje de la cola.

Un mensaje contiene los detalles de su comando, incluido el método de solicitud HTTP y cualquier dato adicional que requiera. Si no especifica todos los parámetros para su mensaje, la API de comunicación proporciona valores predeterminados.

Después de enviar su mensaje, puede que necesite escuchar una respuesta. Para objetos de BlockingSenderDestination, debe crear un objeto de Thread cuando invoca uno de los métodos de sendReceive(). Para objetos de NonBlockingSenderDestination, debe crear un objeto de MessageListener para recibir la respuesta.

En cualquier caso, debe procesar un objeto de Message que contenga la respuesta. De forma predeterminada, el cuerpo del Message contiene los datos sin procesar de respuesta. Puede elegir especificar un procesador de mensajes del paquete de net.rim.device.api.io.parser o crear el suyo propio mediante la interfaz de MessageProcessor.

Si es necesario, puede conectar múltiples procesadores de mensajes. La clase de MessageProcessorChain comparte la memoria entre los objetos de MessageProcessor para mejorar la eficiencia. Por ejemplo, si recibe datos de vídeo que utilizan codificación y compresión personalizadas, puede separar la lógica de codificación y compresión en procesadores de mensajes distintos y, a continuación, usar MessageProcessorChain para agruparlos.

Tema anterior: API de comunicación

¿Le ha resultado útil esta información? Envíenos sus comentarios.