Podgląd komunikatów

Operacja Peek Messages pobiera jeden lub więcej komunikatów z przodu kolejki, ale nie zmienia widoczności komunikatu.

Żądanie

Żądanie można skonstruować Peek Messages w następujący sposób. Zalecamy używanie protokołu HTTPS. Zastąp ciąg myaccount nazwą konta magazynu i zastąp ciąg myqueue nazwą kolejki:

Metoda Identyfikator URI żądania Wersja PROTOKOŁU HTTP
GET https://myaccount.queue.core.windows.net/myqueue/messages?peekonly=true HTTP/1.1

Żądanie usługi magazynu emulowanego

Gdy wysyłasz żądanie względem emulowanej usługi magazynu, określ nazwę hosta emulatora i port usługi kolejki jako 127.0.0.1:10001, a następnie nazwę emulowanego konta magazynu:

Metoda Identyfikator URI żądania Wersja PROTOKOŁU HTTP
GET http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?peekonly=true HTTP/1.1

Aby uzyskać więcej informacji, zobacz Use the Azurite emulator for local Azure Storage development (Używanie emulatora Azurite do lokalnego programowania w usłudze Azure Storage).

Parametry identyfikatora URI

W identyfikatorze URI żądania można określić następujące parametry.

Parametr Opis
numofmessages Opcjonalny. Wartość całkowita niezerowa określająca liczbę komunikatów do wglądu z kolejki, maksymalnie 32. Domyślnie pojedynczy komunikat jest podglądany z kolejki za pomocą tej operacji.
timeout Opcjonalny. Parametr jest wyrażony timeout w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji usługi kolejki.

Nagłówki żądań

Wymagane i opcjonalne nagłówki żądań opisano w poniższej tabeli:

Nagłówek żądania Opis
Authorization Wymagane. Określa schemat autoryzacji, nazwę konta i podpis. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
Date lub x-ms-date Wymagane. Określa dla żądania godzinę w formacie uniwersalnego czasu koordynowanego (UTC). Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage.
x-ms-version Opcjonalny. Określa wersję operacji do użycia dla tego żądania. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji usług Azure Storage.
x-ms-client-request-id Opcjonalny. Udostępnia nieprzezroczystą wartość wygenerowaną przez klienta z limitem znaków 1-kibibyte (KiB), który jest rejestrowany w dziennikach podczas konfigurowania rejestrowania. Zdecydowanie zalecamy używanie tego nagłówka do korelowania działań po stronie klienta z żądaniami odbieranymi przez serwer. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi Azure Queue Storage.

Treść żądania

Brak.

Reakcja

Odpowiedź zawiera kod stanu HTTP, zestaw nagłówków odpowiedzi i treść odpowiedzi XML.

Kod stanu

Operacja zakończona powodzeniem zwraca kod stanu 200 (OK).

Aby uzyskać więcej informacji na temat kodów stanu, zobacz Kody stanu i błędów.

Nagłówki odpowiedzi

Odpowiedź na tę operację zawiera następujące nagłówki. Odpowiedź zawiera również dodatkowe standardowe nagłówki HTTP. Wszystkie nagłówki standardowe są zgodne ze specyfikacją protokołu HTTP/1.1.

Nagłówek odpowiedzi Opis
x-ms-request-id Unikatowo identyfikuje wykonane żądanie i można go użyć do rozwiązywania problemów z żądaniem. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z operacjami interfejsu API.
x-ms-version Wersja usługi Queue, która została użyta do wykonania żądania. Zwrócono żądania, które zostały wykonane w wersji 2009-09-19 lub nowszej.
Date Wartość daty/godziny UTC wygenerowana przez usługę, która wskazuje godzinę zainicjowania odpowiedzi.
x-ms-client-request-id Może służyć do rozwiązywania problemów z żądaniami i odpowiadającymi im odpowiedziami. Wartość tego nagłówka jest równa wartości x-ms-client-request-id nagłówka, jeśli znajduje się w żądaniu, a wartość nie zawiera więcej niż 1024 widocznych znaków ASCII. x-ms-client-request-id Jeśli nagłówek nie jest obecny w żądaniu, nie będzie on obecny w odpowiedzi.

Treść odpowiedzi

Kod XML odpowiedzi dla Peek Messages operacji jest zwracany w następującym formacie.

Element MessageID jest wartością identyfikatora GUID, która identyfikuje komunikat w kolejce. Ta wartość jest przypisywana do komunikatu przez usługę Kolejki i jest nieprzezroczysta dla klienta.

InsertionTime Elementy i ExpirationTime są reprezentowane jako wartości UTC i sformatowane zgodnie z opisem w artykule RFC 1123.

Element DequeueCount ma wartość 1 po raz pierwszy, gdy komunikat jest w kolejce. Ta wartość jest zwiększana za każdym razem, gdy komunikat zostanie w kolejce.

Uwaga

Element DequeueCount jest zwracany w treści odpowiedzi tylko wtedy, gdy kolejka została utworzona za pomocą usługi Queue Service w wersji 2009-09-19.

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

Uwaga

Ta odpowiedź różni się od odpowiedzi operacji Pobieranie komunikatów , ponieważ nie zawiera elementów PopReceipt lub TimeNextVisible .

Przykładowa odpowiedź

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>  

Autoryzacja

Ta operacja może być wykonywana przez właściciela konta i przez każdego, kto ma sygnaturę dostępu współdzielonego, który ma uprawnienia do wykonania tej operacji.

Uwagi

Po pobraniu komunikatu z kolejki z ustawioną peekonly wartością true, widoczność komunikatu jest niezmieniona. Komunikat pozostaje dostępny dla innych użytkowników kolejki, dopóki klient nie pobierze komunikatu przy użyciu operacji Pobierz komunikaty . Klient, który żąda komunikatu, nie otrzymuje potwierdzenia pop z odpowiedzią i dlatego nie może usunąć komunikatu.

Za pomocą Peek Messages operacji można pobrać tylko komunikaty widoczne. Należy pamiętać, że maksymalna liczba komunikatów, które można pobrać, wynosi 32.

Gdy komunikat zostanie pobrany po raz pierwszy z wywołaniem metody Get Messages, jej DequeueCount właściwość jest ustawiona na 1. Jeśli nie zostanie usunięta i zostanie pobrana ponownie, DequeueCount właściwość jest zwiększana. Klient może użyć tej wartości, aby określić, ile razy został pobrany komunikat.

Uwaga

Wywołanie metody Peek Messages nie zwiększa wartości elementu DequeueCount, ale zwraca tę wartość dla klienta do odczytu.

Jeśli parametr numofmessages jest poza zakresem, usługa zwraca kod stanu 400 (nieprawidłowe żądanie) wraz z dodatkowymi informacjami o błędzie, jak pokazano w poniższym przykładzie:

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>  
  

Zobacz też

Autoryzowanie żądań do usługi Azure Storage
Kody stanu i błędów
Kody błędów usługi kolejki