Envia uma mensagem para uma fila especificada.
Observações de uso
Codifique o corpo da mensagem em Base64 antes do envio. Mensagens com corpos não codificados em Base64 ou caracteres incompatíveis causam falha na requisição.
Mensagens enviadas sem atraso ficam imediatamente disponíveis para consumo. Para adiar o consumo, defina
DelaySecondscom um valor maior que 0. A mensagem assume o status Delayed e transita para Active após o período de atraso especificado.Se você definir
DelaySecondstanto no nível da mensagem quanto no nível da fila, o valor do nível da mensagem terá precedência.
Autorização
Por padrão, apenas a conta Alibaba Cloud pode chamar esta operação. Para permitir que um usuário RAM chame esta operação, conceda as permissões necessárias. Para mais informações, consulte Políticas de permissão e exemplos.
|
Nome |
Valor |
|
API |
SendMessage |
|
Ação |
|
|
Recurso |
|
Sintaxe da requisição
POST /queues/$queueName/messages HTTP/1.1
Host: $AccountId.mns.<region>.aliyuncs.com
Date: <date>
Content-Length: <content-length>
Content-Type: text/xml;charset=utf-8
x-mns-version: 2015-06-06
Authorization: MNS <AccessKeyId>:<Signature>
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageBody>Base64-encoded message content</MessageBody>
<DelaySeconds>0</DelaySeconds>
<Priority>1</Priority>
</Message>
Cabeçalhos de requisição específicos da operação: Nenhum.
Parâmetros do corpo da requisição
|
Parâmetro |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
MessageBody |
String |
Sim |
This is a test message |
Corpo da mensagem. Codifique este valor em Base64 antes do envio. |
|
DelaySeconds |
Integer |
Não |
60 |
Período em segundos antes que a mensagem fique disponível para consumo. Valores válidos: 0 a 604800. Valor padrão: 0. |
Sintaxe da resposta
HTTP/1.1 201 Created
Content-Length: <content-length>
Content-Type: text/xml;charset=utf-8
x-mns-request-id: <request-id>
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageId>5F290C926D472878-2-14D9529A8FA-20000****</MessageId>
<MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
<ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
</Message>
Cabeçalhos de resposta específicos da operação: Nenhum.
Parâmetros do corpo da resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
MessageId |
String |
|
ID exclusivo da mensagem na fila. |
|
MessageBodyMD5 |
String |
|
Hash MD5 do corpo da mensagem. Use este valor para verificar a integridade da mensagem. |
|
ReceiptHandle |
String |
|
Handle de recebimento da mensagem. Retornado apenas para mensagens com atraso. |
Exemplos
Enviar uma mensagem com atraso
A requisição a seguir envia uma mensagem com atraso de 60 segundos para uma fila. A mensagem assume o status Delayed e torna-se consumível após 60 segundos.
Requisição
POST /queues/$queueName/messages HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 18 Mar 2012 12:00:00 GMT
Content-Length:500
Content-Type:text/xml;charset=utf-8
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEX****
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageBody>This is a test message</MessageBody>
<DelaySeconds>60</DelaySeconds>
<Priority>1</Priority>
</Message>
Resposta
HTTP/1.1 201 Created
Content-Length:120
Content-Type:text/xml;charset=utf-8
x-mns-request-id:512B2A634403E52B1956****
x-mns-version: 2015-06-06
<?xml version="1.0" encoding="UTF-8"?>
<Message xmlns="http://mns.aliyuncs.com/doc/v1/">
<MessageId>5F290C926D472878-2-14D9529****-200000001</MessageId>
<MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6****</MessageBodyMD5>
<ReceiptHandle>1-ODU4OTkzNDU5My0xNDM1MTk3NjAwLTItNg==</ReceiptHandle>
</Message>
Códigos de erro
A tabela a seguir lista os códigos de erro específicos desta operação. Para códigos de erro comuns, consulte Códigos de erro comuns.
|
Código de erro |
Mensagem de erro |
Código de status HTTP |
Descrição |
Solução |
|
QueueNotExist |
The queue name you provided is not exist. |
404 |
A fila especificada não existe. |
Verifique o nome da fila e crie-a se ela não existir. |
|
MalformedXML |
The XML you provided was not well-formed. |
400 |
O corpo da requisição contém XML inválido. |
Verifique o formato do XML e garanta que ele esteja em conformidade com a sintaxe da requisição. |
|
InvalidArgument |
The value of Element should between Low and High seconds/bytes. |
400 |
Um valor de parâmetro está fora do intervalo permitido. |
Verifique se |