Queries a message.

Name Value
API 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

Each request consists of the following parts:

  • Request line

    GET /queues/$queueName/messages? peekonly=true HTTP/1.1

  • URI parameter

    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

Each response consists of the following parts:

  • HTTP Status Code

    HTTP/1.1 200 OK

  • Operation-specific response headers

    None.

  • Response Body

    The response is in the XML format. The message body and other parameters of the message are returned.

    Parameter Description
    MessageId The ID of the message. The message ID is unique in the queue.
    MessageBody The body of the message.
    MessageBodyMD5 The MD5 hash of the message body.
    EnqueueTime The time when the message was sent to the queue. The value is a timestamp that follows the UNIX time format. It is the number of milliseconds that have elapsed since 00:00:00 Thursday, January 1, 1970.
    FirstDequeueTime The time when the message was consumed for the first time. The value is a timestamp that follows the UNIX time format. It is the number of milliseconds that have elapsed since 00:00:00 Thursday, January 1, 1970. If the value of the DequeueCount parameter is 0, the value of the FirstDequeueTime parameter is the same as the value of the EnqueueTime parameter.
    DequeueCount The total number of times for which the message was consumed.
    Priority The priority of the message.

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>            

Special error

Error code Error message HTTP status code
QueueNotExist The queue name you provided is not exist. 404
MessageNotExist Message not exist. 404