调用PeekMessage接口查看消息。
授权信息
默认仅限阿里云账号使用本接口,RAM用户只有在被授予了相关API操作权限后方可使用。本接口的授权信息如下表所示。更多信息,请参见授权策略和示例。
Name | Value |
API | PeekMessage |
RAM授权操作 | mns:PeekMessage |
资源 | acs:mns:$region:$accountid:/queues/$queueName/messages |
使用说明
该接口用于消费者查看消息,PeekMessage与ReceiveMessage不同,PeekMessage不会改变消息的状态。消息被PeekMessage获取后,消息仍然处于Active状态,可被查看或消费。而消息被ReceiveMessage获取后,进入Inactive状态,在VisibilityTimeout
的时间内不可被查看和消费。
请求消息
请求消息由请求行、URL参数、HTTP头和消息体四部分组成:
请求行
GET /queues/$queueName/messages?peekonly=true HTTP/1.1
URI参数
peekonly=true
表示这次请求只是去查看队列顶部的消息,并不会引起消息的状态改变。特有Request Header
无。
Request Body
无。
返回消息
返回消息由返回状态行、HTTP头和消息体三部分组成:
HTTP Status Code
HTTP/1.1 200 OK
特有Response Header
无。
Response Body
返回的结果为XML格式,返回Message消息正文及消息属性。
参数名称
类型
示例值
描述
MessageId
String
D6D5F7C9C12D14A4-1-14D953EFC72-20000****
消息编号,在同一个Queue中唯一。
MessageBody
String
This is a test message.
消息正文。
MessageBodyMD5
String
F9360F391579E71CA77BC5D50242****
消息正文的MD5值。
EnqueueTime
Long
1250700979248
消息发送到队列的时间,取值为从1970年01月01日00:00:00 000开始的毫秒数。
FirstDequeueTime
Long
1250700979348
第一次被消费的时间,取值为从1970年01月01日00:00:00 000开始的毫秒数,如果
DequeueCount
为0,则与消息的EnqueueTime
相同。DequeueCount
Integer
5
总共被消费的次数。
示例
请求示例:
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****
返回示例:
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>
错误码
错误代码 | 错误消息 | HTTP状态码 | 描述内容 |
QueueNotExist | The queue name you provided is not exist. | 404 | 队列不存在,请先创建队列。 |
MessageNotExist | Message not exist. | 404 | 队列中没有可见消息。 |