Enviar mensaje
Envía un mensaje a una cola o tema de Service Bus.
Solicitud
Método | URI de solicitud | Versión HTTP |
---|---|---|
POST | 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 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:
|
Content-Type |
Establezca el tipo de contenido adecuado para el cuerpo de la entidad publicada (carga del mensaje). |
BrokerProperties |
Conjunto de propiedades BrokeredMessage codificadas en JSON. |
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, se debe serializar el cuerpo del mensaje; 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 cuerpo de mensaje siguiente:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">This is a message.</string>
El mensaje se puede recibir y procesar con el código siguiente:
BrokeredMessage message = queueClient.Receive();
string body = message.GetBody<string>(new DataContractSerializer(typeof(string)));
Response
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 el tema. |
400 | Solicitud incorrecta. |
401 | Error de autorización. |
403 | Se ha superado la cuota o el mensaje es demasiado grande. |
410 | La cola o el tema especificado no existen. |
500 | Error interno. |
Para obtener información sobre los códigos de estado, vea Códigos de estado y error.
Encabezados de respuesta
Content-type tal como se ha pasado.
Cuerpo de la respuesta
Ninguno.
Ejemplo
La solicitud HTTP siguiente envía un mensaje a una cola o un tema. El mensaje tiene las siguientes propiedades:
Label: "M1"
TimeToLive: 10 seconds
State: Active
Message body: "This is a message."
Además de BrokeredProperties
, el mensaje contiene 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