Compartilhar via


Enviar Mensagem

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

Pedir

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

Cabeçalhos de solicitação

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

Cabeçalho de solicitação Descrição
Authorization Especifique um dos seguintes valores de token:
  • Token Web JSON do Microsoft Entra (JWT).
    Exemplo: Authorization: Bearer <Azure AD JWT token>.
    Para obter informações sobre como gerar um token do Microsoft Entra, consulte Authenticate 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 postada (conteúdo da mensagem).
BrokerProperties Conjunto codificado em JSON de propriedades de 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 XML System.Runtime.Serialization.DataContractSerializer. 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

Code Descrição
201 Mensagem enviada com êxito para fila ou tópico.
400 Solicitação incorreta.
401 Falha de autorização.
403 Cota excedida ou mensagem muito grande.
410 A fila ou o tópico especificados não existem.
500 Erro interno.

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

Observação

Se você receber uma resposta 401 Não autorizada, verifique se o token SAS no cabeçalho de autorização está corretamente construído, assinado, codificado em URL e corresponde ao URI exato da entidade do Barramento de Serviço.

Cabeçalhos de resposta

de tipo de conteúdo conforme passado.

Corpo da resposta

Nenhum.

Exemplo

A solicitação HTTP a seguir envia uma mensagem para uma fila ou 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