Partilhar via


Enviar Mensagem

Envia uma mensagem para uma fila ou tópico do Service Bus.

Solicitar

Método Solicitar URI Versão HTTP
PUBLICAR 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. Veja o exemplo.

Cabeçalho da solicitação Descrição
Authorization Especifique um dos seguintes valores de token:
  • Token Web Entra JSON (JWT) da Microsoft.
    Exemplo: Authorization: Bearer <Azure AD JWT token>.
    Para obter informações sobre como gerar um token do Microsoft Entra, consulte Autenticar a partir 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 (carga útil da mensagem).
BrokerProperties Conjunto de propriedades de BrokeredMessage codificado por JSON.
x-ms-retrypolicy (Opcional) Defina como NoRetry para desativar a repetição automática em operações de envio quando ocorrerem erros transitórios.

Órgão do Pedido

O corpo da solicitação é a carga útil da mensagem.

Se a mensagem deve ser recebida através de um protocolo diferente de HTTP/HTTPS, o corpo da mensagem deve 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 de 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 para a fila ou tópico.
400 Mau pedido.
401 Falha de autorização.
403 Quota excedida ou mensagem demasiado grande.
410 Fila ou tópico especificado não existe.
500 Erro interno.

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

Cabeçalhos de resposta

Tipo de conteúdo conforme passado.

Organismo de resposta

Nenhuma.

Exemplo

A seguinte solicitação HTTP 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  

Ver também

Exemplo de cliente HTTP do Service Bus