Compartir a través de


Enviar mensaje

Envía un mensaje a una cola o tema de Service Bus.

Pedir

Método URI de solicitud Versión HTTP
EXPONER http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages HTTP/1.1

Encabezados de solicitud

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

Encabezado de solicitud Descripción
Authorization Especifique uno de los siguientes valores de token:
  • Token web JSON (JWT) de Microsoft Entra.
    Ejemplo: Authorization: Bearer <Azure AD JWT token>.
    Para obtener información sobre cómo generar un token de Microsoft Entra, 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 Generación de un token de firma de acceso compartido y generación de token de SAS.
Content-Type Establezca el tipo de contenido adecuado para el cuerpo de la entidad publicada (carga del mensaje).
BrokerProperties Conjunto codificado en JSON de propiedades de BrokeredMessage.
x-ms-retrypolicy (Opcional) Establézcalo en NoRetry para deshabilitar el reintento automático en las operaciones de envío cuando se produzcan errores transitorios.

Cuerpo de la solicitud

El cuerpo de la solicitud es la carga del mensaje.

Si el mensaje se va a recibir a través de un protocolo distinto de HTTP/HTTPS, el cuerpo del mensaje debe serializarse; por ejemplo, con un xml System.Runtime.Serialization.DataContractSerializer. Por ejemplo:

MemoryStream ms = new MemoryStream();  
DataContractSerializer serializer = new DataContractSerializer(typeof(string));  
serializer.WriteObject(ms, "This is a message.");  
byte[] body = ms7.ToArray();  

El código anterior genera el siguiente cuerpo del mensaje:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">This is a message.</string>  

Puede recibir y procesar el mensaje con el código siguiente:

BrokeredMessage message = queueClient.Receive();  
string body = message.GetBody<string>(new DataContractSerializer(typeof(string)));  

Respuesta

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

Códigos de respuesta

Código Descripción
201 Mensaje enviado correctamente a la cola o al tema.
400 Solicitud incorrecta.
401 Error de autorización.
403 Cuota superada o mensaje demasiado grande.
410 La cola o el tema especificados no existen.
500 Error interno.

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

Nota:

Si recibe una respuesta 401 No autorizada, compruebe que el token de SAS del encabezado Authorization está correctamente construido, firmado, codificado como dirección URL y coincide con el URI exacto de la entidad Service Bus.

Encabezados de respuesta

tipo de contenido tal como se pasa.

Cuerpo de la respuesta

Ninguno.

Ejemplo

La siguiente solicitud HTTP envía un mensaje a una cola o tema. El mensaje tiene las siguientes propiedades:

Label: "M1"  
TimeToLive: 10 seconds  
State: Active  
Message body: "This is a message."  

Además del BrokeredProperties, el mensaje incluye las siguientes propiedades personalizadas: Priority=High y Customer="12345,ABC".

POST https://your-namespace.servicebus.windows.net/HttpClientSampleQueue/messages?timeout=60 HTTP/1.1  
Authorization: SharedAccessSignature sr=your-namespace&sig=Fg8yUyR4MOmXfHfj55f5hY4jGb8x2Yc%2b3%2fULKZYxKZk%3d&se=1404256819&skn=RootManageSharedAccessKey  
BrokerProperties: {"Label":"M1","State":"Active","TimeToLive":10}  
Priority: High  
Customer: 12345,ABC  
Content-Type: application/atom+xml;type=entry;charset=utf-8  
Host: your-namespace.servicebus.windows.net  
Content-Length: 18  
Expect: 100-continue  
  
This is a message.  

Service Bus devuelve la siguiente respuesta:

HTTP/1.1 201 Created  
Transfer-Encoding: chunked  
Content-Type: application/xml; charset=utf-8  
Server: Microsoft-HTTPAPI/2.0  
Date: Tue, 01 Jul 2014 23:00:22 GMT  
  
0  

Consulte también