导出 (0) 打印
全部展开

查看消息

更新时间: 2013年11月

此操作从队列前面检索一条或多条消息,但不更改消息的可见性。

可以按如下方式构建Peek Messages请求。建议使用 HTTPS。将 myaccount 替换为你的存储帐户名称,并将 myqueue 替换为你的队列名称:

 

方法 请求 URI HTTP 版本

GET

https://myaccount.queue.core.windows.net/myqueue/messages?peekonly=true

HTTP/1.1

在针对模拟的存储服务发出请求时,请将模拟器主机名和队列服务端口指定为 127.0.0.1:10001,后跟模拟的存储帐户名称:

 

方法 请求 URI HTTP 版本

GET

http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?peekonly=true

HTTP/1.1

有关详细信息,请参阅About Development Storage

可以在请求 URI 上指定以下参数。

 

Parameter 说明

numofmessages

可选。一个非零整数值,用于指定要从队列查看的消息数目,最大值为 32。默认情况下,此操作查看队列中的一条消息。

timeout

可选。timeout 参数以秒表示。有关详细信息,请参阅为队列服务操作设置超时

下表介绍必需的和可选的请求标头。

 

请求标头 说明

Authorization

必需。指定身份验证方案、帐户名和签名。有关详细信息,请参阅Azure 存储服务身份验证

Datex-ms-date

必需。为请求指定协调世界时 (UTC)。有关详细信息,请参阅Azure 存储服务身份验证

x-ms-version

可选。指定用于此请求的操作的版本。有关详细信息,请参阅Azure 存储服务版本化

x-ms-client-request-id

可选。提供客户端生成的、附带 1 KB 字符限制的不透明值,在启用存储分析日志记录时,将在分析日志中记录该值。强烈建议使用此标头将客户端活动与服务器接收的请求相关联。有关详细信息,请参阅 关于存储分析日志记录Azure 日志记录:使用日志跟踪存储请求

无。

响应包括 HTTP 状态代码、一组响应标头和 XML 响应正文。

此操作成功后返回状态代码 200(正常)。

有关状态代码的信息,请参阅状态和错误代码

此操作的响应包括以下标头。响应还包含其他标准 HTTP 标头。所有标准标头都符合 HTTP/1.1 协议规范

 

响应标头 说明

x-ms-request-id

此标头唯一地标识发出的请求,并且可用于解决请求问题。有关详细信息,请参阅API 操作故障排除

x-ms-version

指示用于执行请求的队列服务的版本。针对 2009-09-19 和更高版本发出的请求将返回此标头。

Date

服务生成的 UTC 日期/时间值指示启动响应的时间。

将用以下格式返回Peek Messages操作的响应 XML。

MessageID element is a GUID value that identifies the message in the queue.此值由队列服务分配给消息,对客户端不透明。

InsertionTimeExpirationTime 元素表示为 UTC 值,并按 RFC 1123 中所述进行格式设置。

第一次将消息取消排队时,DequeueCount 元素的值为 1。随后每次将该消息取消排队时,此值都会递增。

note备注
只有在使用版本为 2009-09-19 的队列服务创建队列的情况下,才会在响应正文中返回DequeueCount 元素。

<QueueMessagesList>
    <QueueMessage>
      <MessageId>string-message-id</MessageId>
      <InsertionTime>insertion-time</InsertionTime>
      <ExpirationTime>expiration-time</ExpirationTime>
      <DequeueCount>integer</DequeueCount>
      <MessageText>message-body</MessageText>
    </QueueMessage>
</QueueMessagesList>

请注意,此响应与获取消息操作的响应不同,因为该响应不包含 PopReceiptTimeNextVisible 元素。

Response Status:
HTTP/1.1 200 OK

Response Headers:
Transfer-Encoding: chunked
Content-Type: application/xml
Date: Fri, 16 Sep 2011 22:51:18 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0

Response Body:
<?xml version="1.0" encoding="utf-8"?>
<QueueMessagesList>
  <QueueMessage>
    <MessageId>06eba214-8107-4412-a7f6-710a9baff647</MessageId>
    <InsertionTime>Fri, 09 Oct 2009 18:59:54 GMT</InsertionTime>
    <ExpirationTime>Fri, 16 Sep 2009 18:59:54 GMT</ExpirationTime>
    <DequeueCount>1</DequeueCount>
    <MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText>
  </QueueMessage>
</QueueMessagesList>

帐户所有者以及使用有权执行此操作的共享访问签名的任何人可以执行此操作。

peekonly 设置为 true 的情况下从队列检索消息时,消息的可见性不会改变。消息对队列的其他使用者保持可用,直到客户端通过获取消息操作来检索该消息。请求该消息的客户端不会通过响应收到 Pop 回执,因此无法删除该消息。

通过Peek Messages操作,只能检索可见的消息。请注意,可检索的消息的最大数目为 32。

首次通过调用 Get Messages 检索消息时,该消息的 DequeueCount 属性设为 1。如果不将该消息删除并随后再次对其检索,则 DequeueCount 属性的值会递增。客户端可以使用此值来确定已检索某条消息的次数。请注意,调用Peek Messages不会递增 DequeueCount 的值,而是返回此值以便客户端读取。

如果 numofmessages 参数的值超出范围,则服务会返回状态代码 400(错误的请求)以及其他错误信息,如下面的示例所示。

HTTP/1.1 400 One of the query parameters specified in the request URI is outside the permissible range.
Connection: Keep-Alive
Content-Length: 455
Via: 1.1 TK5-PRXY-22
Date: Wed, 02 May 2012 19:37:23 GMT
Content-Type: application/xml
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 6a03526c-ca2c-4358-a63a-b5d096988533
x-ms-version: 2011-08-18

<?xml version="1.0" encoding="utf-8"?>
   <Error>
      <Code>OutOfRangeQueryParameterValue</Code>
      <Message>One of the query parameters specified in the request URI is outside the permissible range.
               RequestId:6a03526c-ca2c-4358-a63a-b5d096988533
               Time:2012-05-02T19:37:24.2438463Z
      </Message>
      <QueryParameterName>numofmessages</QueryParameterName>
      <QueryParameterValue>0</QueryParameterValue>
      <MinimumAllowed>1</MinimumAllowed>
      <MaximumAllowed>32</MaximumAllowed>
   </Error>

显示:
© 2014 Microsoft