本接口用于消费者消费消息队列的消息,ReceiveMessage操作会将取得的消息状态变成Inactive,处于Inactive状态的时间长度由Queue属性VisibilityTimeout指定。消费者在VisibilityTimeout时间内消费成功后需要调用DeleteMessage接口删除该消息,否则该消息将会被重新置为Active,该消息又可被消费者重新消费。

Request

Request的构造主要由以下几个部分组成:

  • 请求行

    GET /$queueName/messages?waitseconds=10 HTTP/1.1

  • 特有URI参数
    参数名称 说明 选项
    waitseconds 本次ReceiveMessage请求最长的Polling等待时间①,单位为秒。 可选
    说明 ① 如果ReceiveMessage请求附带waitseconds参数,则在Queue无消息时,此次ReceiveMessage请求进入到Polling等待时长为waitseconds;如果未设置waitseconds,则默认使用所属Queue的PollingWaitSeconds属性。
  • 特有Request Header

    无,请参见公共参数

  • Request Body

    无。

Response

返回消息由返回状态行、HTTP头和消息体三部分组成:

  • HTTP Status Code

    HTTP/1.1 200 OK

  • 特有Response Header

    无,请参见公共参数

  • Response Body

    返回的结果为XML格式,返回Message消息正文及消息属性。

    参数名称 说明
    MessageId 消息编号,在一个Queue中唯一。
    ReceiptHandle 本次获取消息产生的临时句柄,用于删除和修改处于Inactive消息,NextVisibleTime之前有效。
    MessageBody 消息正文。
    MessageBodyMD5 消息正文的MD5值。
    EnqueueTime 消息发送到队列的时间,从1970年1月1日0点整开始的毫秒数。
    NextVisibleTime 下次可被再次消费的时间,从1970年1月1日0点整开始的毫秒数。
    FirstDequeueTime 第一次被消费的时间,从1970年1月1日0点整开始的毫秒数。
    DequeueCount 总共被消费的次数。
    Priority 消息的优先级权值。

Special Error

错误代码 错误消息 状态码
QueueNotExist The queue name you provided is not exist. 404
MessageNotExist Message not exist. 404
  • 请求示例
    GET  /$queueName/messages HTTP/1.1
        Host: $AccountId.mqs-cn-hangzhou.aliyuncs.com
        Date: Wed, 28 May 2012 22:32:00 GMT
        x-mqs-version: 2014-07-08
        Authorization: MQS 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE            
  • 返回示例
        HTTP/1.1 200 OK
        Connection:close
        Content-Type=text/xml;charset=utf-8
        Content-Length:500
        x-mqs-request-id:512B2A634403E52B1956133E 
        x-mqs-version:2015-06-06
    
        <?xml version="1.0” encoding=”UTF-8” ?>
        <Message xmlns=”http://mqs.aliyuncs.com/doc/v1/”>
            <MessageId>5F290C926D472878-2-14D9529A8FA-200000001</MessageId>
            <ReceiptHandle>1-ODU4OTkzNDU5My0xNDMyNzI3ODI3LTItOA==</ReceiptHandle>
            <MessageBodyMD5>C5DD56A39F5F7BB8B3337C6D11B6D8C7</MessageBodyMD5>
            <MessageBody>This is a test message</MessageBody>
            <EnqueueTime>1250700979248</EnqueueTime>
            <NextVisibleTime>1250700799348</NextVisibleTime>
            <FirstDequeueTime>1250700779318</FirstDequeueTime >
            <DequeueCount>1</DequeueCount >
            <Priority>8</Priority>
        </Message>