Queries a message.
Authorization
By default, only Alibaba Cloud accounts can call this operation. RAM users can call this operation only after these RAM users are granted related permissions. The following table describes the authorization information of this operation. For more information, see Permission policies and examples.
Item | Value |
---|---|
API operation | PeekMessage |
Action | mns:PeekMessage |
Resource | acs:mns:$region:$accountid:/queues/$queueName/messages |
Description
You can call this operation to query a message. Different from the ReceiveMessage
operation, the PeekMessage operation does not change the status of the message. After
you call the PeekMessage operation to view a message, the message remains in the Active
state and can still be viewed or consumed. However, if you call the ReceiveMessage
operation to receive a message, the message changes to the Inactive state. Then, the
message cannot be viewed or consumed by other clients within the period specified
by the VisibilityTimeout
parameter.
Request
A request consists of the following parts:
- Request line
GET /queues/$queueName/messages?peekonly=true HTTP/1.1
- URI parameters
peekonly=true
indicates that this request is only used to view a message in the queue and does not change the status of the message. - Operation-specific request headers
None.
- Request body
None.
Response
A response consists of the following parts:
- HTTP status code
HTTP/1.1 200 OK
- Operation-specific response headers
None.
- Response body
The response body is in the XML format. The body and parameters of the message are returned.
Parameter Type Example Description MessageId String D6D5F7C9C12D14A4-1-14D953EFC72-20000**** The ID of the message. The message ID is unique in the queue. MessageBody String This is a test message. The body of the message. MessageBodyMD5 String F9360F391579E71CA77BC5D50242**** The MD5 hash of the message body. EnqueueTime Long 1250700979248 The time when the message was sent to the queue. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC. FirstDequeueTime Long 1250700979348 The first time the message was consumed. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC. If the value of the DequeueCount
parameter is 0, the value of the FirstDequeueTime parameter is the same as the value of theEnqueueTime
parameter.DequeueCount Integer 5 The total number of times for which the message was consumed. Priority Integer 8 The priority of the message. A smaller value indicates a higher priority.
Examples
Sample requests
GET /queues/$queueName/messages?peekonly=true HTTP/1.1
Host: $AccountId.mns.cn-hangzhou.aliyuncs.com
Date: Wed, 28 May 2012 22:32:00 GMT
x-mns-version: 2015-06-06
Authorization: MNS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXA****
Sample success responses
HTTP/1.1 200 OK
Connection:close
Content-Type=text/xml;charset=utf-8
Content-Length:500
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>D6D5F7C9C12D14A4-1-14D953EFC72-20000****</MessageId>
<MessageBodyMD5>F9360F391579E71CA77BC5D50242****</MessageBodyMD5>
<MessageBody>This is a test message.</MessageBody>
<EnqueueTime>1250700979248</EnqueueTime>
<FirstDequeueTime>1250700979348</FirstDequeueTime >
<DequeueCount>5</DequeueCount>
<Priority>8<Priority>
</Message>
Error codes
Error code | Error message | HTTP status code | Description |
---|---|---|---|
QueueNotExist | The queue name you provided is not exist. | 404 | The error message returned because the specified queue does not exist. Create a queue. |
MessageNotExist | Message not exist. | 404 | The error message returned because no visible message exists in the queue. |