Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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:
|
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