Compartilhar via


Enviar Mensagem

Envia uma mensagem para uma fila ou tópico do Barramento de Serviço.

Solicitação

Método URI da solicitação Versão de HTTP
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1

Cabeçalhos de solicitação

A tabela a seguir descreve os cabeçalhos de solicitação obrigatórios e opcionais. Além das propriedades listadas, o cabeçalho pode conter propriedades personalizadas. Consulte o exemplo.

Cabeçalho da solicitação Descrição
Authorization Especifique um dos seguintes valores de token:
  • Token JWT (Token Web JSON) do Azure Active Directory (Azure AD).
    Exemplo: Authorization: Bearer <Azure AD JWT token>.
    Para obter informações sobre como gerar um token Azure AD, consulte Autenticar de um aplicativo.
  • Um token SAS.
    Exemplo: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Para obter informações sobre como gerar um token SAS, consulte Gerar um token de Assinatura de Acesso Compartilhado e Gerar token SAS.
Content-Type Defina o tipo de conteúdo apropriado para o corpo da entidade postado (conteúdo da mensagem).
BrokerProperties Conjunto codificado em JSON de propriedades BrokeredMessage.
x-ms-retrypolicy (Opcional) Defina como NoRetry para desabilitar a repetição automática em operações de envio quando ocorrerem erros transitórios.

Corpo da solicitação

O corpo da solicitação é o conteúdo da mensagem.

Se a mensagem for recebida por meio de um protocolo diferente de HTTP/HTTPS, o corpo da mensagem deverá ser serializado; por exemplo, com um System.Runtime.Serialization.DataContractSerializer XML. Por exemplo:

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

O código anterior produz o seguinte corpo da mensagem:

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

Você pode receber e processar a mensagem com o seguinte código:

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

Resposta

A resposta inclui um código de status HTTP e um conjunto de cabeçalhos de resposta.

Códigos de resposta

Código Descrição
201 Mensagem enviada com êxito à fila ou ao tópico.
400 Solicitação inválida.
401 Falha de autorização.
403 Cota excedida ou mensagem muito grande.
410 A fila ou o tópico especificado não existe.
500 Erro interno.

Para obter informações sobre status códigos, consulte Códigos de status e erro.

Cabeçalhos de resposta

Content-type, conforme transmitido.

Corpo da resposta

Nenhum.

Exemplo

A solicitação HTTP a seguir envia uma mensagem a uma fila ou a um tópico. A mensagem tem as seguintes propriedades:

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

Além do BrokeredProperties, a mensagem carrega as seguintes propriedades personalizadas: Priority=High e 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.  

O Barramento de Serviço retorna a seguinte resposta:

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 Também

Exemplo de Cliente HTTP de Barramento de Serviço