Mensaje bloqueado con peek (lectura no destructiva)

Esta operación recupera y bloquea automáticamente un mensaje de una cola o una suscripción para su procesamiento. Se garantiza que el mensaje no se enviará a otros destinatarios (solo de la misma cola o suscripción) mientras esté bloqueado, según la duración especificada en la descripción de la cola o suscripción. Cuando expira el bloqueo, el mensaje pasa a estar disponible para otros destinatarios. Con objeto de finalizar el procesamiento del mensaje, el destinatario debe emitir un comando de eliminación con el identificador del bloqueo recibido de esta operación. Para abandonar el procesamiento del mensaje y desbloquearlo para otros receptores, se debe emitir un comando Desbloquear mensaje ; de lo contrario, el período de duración del bloqueo puede expirar.

Esta operación se debe usar en aplicaciones que requieran garantías de entrega Una vez como mínimo. Si el receptor no elimina el mensaje antes de que el procesamiento se realice correctamente, esta operación garantiza que otro receptor pueda intentar el procesamiento después de que expire el período de duración del bloqueo.

Solicitud

Método URI de solicitud Versión HTTP
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head

o

http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1

Encabezados de solicitud

En la tabla siguiente se describen los encabezados de solicitud requeridos y opcionales. Además de las propiedades mencionadas, el encabezado puede contener propiedades personalizadas. Vea el ejemplo siguiente.

Encabezado de solicitud Descripción
Authorization Especifique uno de los siguientes valores de token:
  • Token de Json Web Token (JWT) de Azure Active Directory (Azure AD).
    Ejemplo: Authorization: Bearer <Azure AD JWT token>.
    Para obtener información sobre cómo generar un token de Azure AD, consulte Autenticación desde una aplicación.
  • Un token de SAS.
    Ejemplo: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Para obtener información sobre cómo generar un token de SAS, consulte Generar un token de firma de acceso compartido y Generar token de SAS.

Cuerpo de la solicitud

Ninguno.

Response

La respuesta incluye un código de estado HTTP, un conjunto de encabezados de respuesta y el cuerpo de respuesta.

Códigos de respuesta

Código Descripción
201 Mensaje recuperado y bloqueado correctamente.
204 Ningún mensaje disponible en el tiempo de espera especificado.
400 Solicitud incorrecta.
401 Error de autorización.
410 La cola o suscripción especificada no existe.
500 Error interno.

Para obtener información sobre los códigos de estado, vea Códigos de estado y error.

Encabezados de respuesta

La respuesta para esta operación incluye los encabezados siguientes. La respuesta también puede incluir otros encabezados HTTP estándar. Todos los encabezados estándar se ajustan a la especificación del protocolo HTTP/1.1.

Encabezado de respuesta Descripción
Content-Type Establézcalo en application/atom+xml;type=entry;charset=utf-8.
Location URI del mensaje bloqueado. Este URI se puede usar para desbloquear o eliminar el mensaje.
BrokerProperties Codificado BrokerProperties en JSON del mensaje recibido. La LockToken propiedad representa el identificador de bloqueo del mensaje devuelto. La SequenceNumber propiedad representa el número de secuencia del mensaje devuelto.

Cuerpo de la respuesta

El cuerpo de respuesta es el cuerpo del mensaje recuperado.

Ejemplo

La solicitud HTTP siguiente bloquea y devuelve un mensaje de una cola:

POST https://your-namespace.servicebus.windows.net/HttpClientSampleQueue/messages/head?timeout=60 HTTP/1.1  
Authorization: SharedAccessSignature sr=your-namespace&sig=Fg8yUyR4MOmXfHfj55f5hY4jGb8x2Yc%2b3%2fULKZYxKZk%3d&se=1404256819&skn=RootManageSharedAccessKey  
Host: your-namespace.servicebus.windows.net  
Content-Length: 0  

Service Bus devuelve la siguiente respuesta. El mensaje contiene las propiedades personalizadas Priority y Customer:

HTTP/1.1 201 Created  
Transfer-Encoding: chunked  
Content-Type: application/atom+xml;type=entry;charset=utf-8  
Location: https://your-namespace.servicebus.windows.net/httpclientsamplequeue/messages/2/7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547  
Server: Microsoft-HTTPAPI/2.0  
BrokerProperties: {"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Wed, 02 Jul 2014 01:32:27 GMT","Label":"M1","LockToken":"7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547","LockedUntilUtc":"Wed, 02 Jul 2014 01:33:27 GMT","MessageId":"31907572164743c38741631acd554d6f","SequenceNumber":2,"State":"Active","TimeToLive":10}  
Priority: "High"  
Customer: "12345,ABC"  
Date: Wed, 02 Jul 2014 01:32:27 GMT  
  
12  
This is a message.  
0  

Consulte también

Ejemplo de cliente HTTP de Service Bus