Share via


İleti al

İşlem, Get Messages kuyruğun önünden bir veya daha fazla ileti alır.

İstek

İstek Get Messages aşağıdaki gibi oluşturulabilir. HTTPS kullanmanızı öneririz. myaccount değerini depolama hesabınızın adıyla, yerine de kuyruğunuzun adını yazınmyqueue:

Yöntem İstek URI'si HTTP sürümü
GET https://myaccount.queue.core.windows.net/myqueue/messages HTTP/1.1

Öykünülmüş depolama hizmeti isteği

Öykünülmüş depolama hizmetinde istekte bulunmak için öykünücü ana bilgisayar adını ve Azure Kuyruk Depolama bağlantı noktasını olarak 127.0.0.1:10001ve ardından öykünülen depolama hesabı adını belirtin:

Yöntem İstek URI'si HTTP sürümü
GET http://127.0.0.1:10001/devstoreaccount1/myqueue/messages HTTP/1.1

Daha fazla bilgi için bkz. Yerel Azure Depolama geliştirmesi için Azurite öykünücüsü kullanma.

URI parametreleri

İstek URI'sinde aşağıdaki ek parametreler belirtilebilir.

Parametre Açıklama
numofmessages İsteğe bağlı. En fazla 32 olmak üzere kuyruktan alınacak ileti sayısını belirten sıfır olmayan bir tamsayı değeri. Daha az ileti görünür durumdaysa, görünür iletiler döndürülür. Varsayılan olarak, bu işlemle kuyruktan tek bir ileti alınır.
visibilitytimeout İsteğe bağlı. Sunucu süresine göre yeni görünürlük zaman aşımı değerini saniye olarak belirtir. Varsayılan değer 30 saniyedir.

Belirtilen değer 1 saniyeden büyük veya buna eşit olmalıdır ve 2011-08-18'den önceki REST protokolü sürümlerinde 7 günden büyük veya 2 saatten uzun olamaz. İletinin görünürlük zaman aşımı süresi, son kullanma tarihinden sonraki bir değere ayarlanabilir.
timeout İsteğe bağlı. timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Azure Kuyruk Depolama işlemleri için zaman aşımlarını ayarlama.

İstek üst bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.

İstek üst bilgisi Açıklama
Authorization Gereklidir. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme.
Date veya x-ms-date Gereklidir. İstek için Eşgüdümlü Evrensel Saat (UTC) biçimini belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme.
x-ms-version İsteğe bağlı. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.
x-ms-client-request-id İsteğe bağlı. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibayt (KiB) karakter sınırıyla istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucunun aldığı istekler arasında bağıntı sağlamak için bu üst bilgiyi kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz. Azure Kuyruk Depolama'yı izleme.

İstek gövdesi

Yok.

Yanıt

Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir.

Durum kodu

Başarılı bir işlem 200 (Tamam) durum kodunu döndürür.

Durum kodları hakkında daha fazla bilgi için bkz. Durum ve hata kodları.

Yanıt üst bilgileri

Bu işlemin yanıtı aşağıdaki üst bilgileri içerir. Yanıt ek standart HTTP üst bilgileri de içerebilir. Tüm standart üst bilgiler HTTP/1.1 protokol belirtimine uygundur.

Yanıt üst bilgisi Description
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar ve isteğin sorunlarını gidermek için kullanılabilir. Daha fazla bilgi için bkz . API işlemleriyle ilgili sorunları giderme.
x-ms-version İsteği yürütmek için kullanılan Azure Kuyruk Depolama sürümünü gösterir. Bu üst bilgi, 2009-09-19 ve sonraki sürümlerde yapılan istekler için döndürülür.
Date Hizmet tarafından oluşturulan ve yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri.
x-ms-client-request-id İsteklerde ve karşılık gelen yanıtlarda sorun gidermek için kullanılabilir. Bu üst bilginin değeri, istekte varsa ve değer 1.024'ten fazla görünür ASCII karakteri içermiyorsa üst bilginin değerine x-ms-client-request-id eşittir. İstekte x-ms-client-request-id üst bilgi yoksa yanıtta bulunmaz.

Yanıt gövdesi

İşlemin yanıt XML'i Get Messages aşağıdaki biçimde döndürülür.

MessageID öğesi, kuyruktaki iletiyi tanımlayan bir GUID değeridir. Bu değer Azure Kuyruk Depolama tarafından iletiye atanır ve istemci için opaktır. işlemini kullanarak Get Messages bir iletiyi aldıktan sonra kuyruktan silmek için öğesinin değeriyle PopReceipt birlikte değerini kullanabilirsiniz. değeri PopReceipt de istemci için opaktır. Tek amacı, İletiyi Sil işlemiyle bir iletinin silinebilmesini sağlamaktır.

InsertionTime, ExpirationTimeve TimeNextVisible öğeleri UTC değerleri olarak temsil edilir ve RFC 1123'te açıklandığı gibi biçimlendirilir.

öğesi, DequeueCount ileti ilk kez sıralandığında 1 değerine sahiptir. Bu değer, ileti daha sonra her sorgudan kaldırıldığında artırılır.

Not

DequeueCount öğesi yanıt gövdesinde döndürülür, ancak kuyruk Azure Kuyruk Depolama sürüm 2009-09-19 kullanılarak oluşturulduysa döndürülür.

<QueueMessagesList>  
    <QueueMessage>  
      <MessageId>string-message-id</MessageId>  
      <InsertionTime>insertion-time</InsertionTime>  
      <ExpirationTime>expiration-time</ExpirationTime>  
      <PopReceipt>opaque-string-receipt-data</PopReceipt>  
      <TimeNextVisible>time-next-visible</TimeNextVisible>  
      <DequeueCount>integer</DequeueCount>  
      <MessageText>message-body</MessageText>  
    </QueueMessage>  
</QueueMessagesList>  

Örnek yanıt

Response Status:  
HTTP/1.1 200 OK  
Response Headers:  
Transfer-Encoding: chunked  
Content-Type: application/xml  
Date: Fri, 16 Sep 2011 21:04:30 GMT  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
  
Response Body:  
<?xml version="1.0" encoding="utf-8"?>  
<QueueMessagesList>  
  <QueueMessage>  
    <MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId>  
    <InsertionTime>Fri, 09 Oct 2009 21:04:30 GMT</InsertionTime>  
    <ExpirationTime>Fri, 16 Oct 2009 21:04:30 GMT</ExpirationTime>  
    <PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>  
    <TimeNextVisible>Fri, 09 Oct 2009 23:29:20 GMT</TimeNextVisible>  
    <DequeueCount>1</DequeueCount>  
    <MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText>  
  </QueueMessage>  
</QueueMessagesList>  

Yetkilendirme

Bu işlem hesap sahibi ve bu işlemi gerçekleştirme izni olan paylaşılan erişim imzasına sahip herkes tarafından gerçekleştirilebilir.

Açıklamalar

İleti içeriği, İletiYi Koy işlemi için kullanılan biçimde alınır.

Kuyruktan bir ileti alındığında, yanıt iletiyi ve iletiyi silmek için gereken bir pop alındı değeri içerir. İleti kuyruktan otomatik olarak silinmez, ancak alındıktan sonra parametresi tarafından belirtilen zaman aralığı için diğer istemciler tarafından visibilitytimeout görünmez.

Birden çok ileti alınırsa, her iletinin ilişkili bir pop alındı bilgisi vardır. Aynı anda alınabilecek ileti sayısı üst sınırı 32'dir.

İletiyi alan istemcinin, işlendikten sonra ve parametresinin değerine visibilitytimeout göre hesaplanan yanıtın öğesi tarafından TimeNextVisible belirtilen süreden önce iletiyi silmesi beklenir. değerinin değerini visibilitytimeout belirlemek TimeNextVisibleiçin iletinin alınıldığı zamana eklenir.

Saat dengesizliği nedeniyle, belirli visibilitytimeout bir ile alınan bir ileti, belirtilen zaman aşımı tamamlanmadan önce yeniden görüntülenebilir. İstemcinin, bir iletinin her bir sırayı kaldırma işlemi için benzersiz olan pop alındı bilgisi temelinde farklı bir istemci tarafından zaten sıralanmış olduğunu çıkarabileceğini unutmayın. İstemcinin pop alındı bilgisi artık bir iletiyi silmek veya güncelleştirmek için çalışmıyorsa ve istemci 404 (Bulunamadı) hatası alıyorsa, ileti başka bir istemci tarafından sorgudan kaldırılmıştır.

Genellikle, bir tüketici aracılığıyla Get Messagesbir ileti aldığında, bu ileti görünürlük zaman aşımı aralığı sona erene kadar silinmek üzere ayrılır. Ancak bu davranış garanti değildir. Görünürlük zaman aşımı aralığının süresi dolduktan sonra ileti yeniden diğer tüketicilere görünür hale gelir. İleti daha sonra başka bir tüketici tarafından alınmaz ve silinmezse, özgün tüketici özgün pop makbuzunu kullanarak iletiyi silebilir.

bir ileti ilk kez alındığında, özelliği DequeueCount 1 olarak ayarlanır. Silinmezse ve daha sonra yeniden alınırsa, DequeueCount özellik artırılır. İstemci, bir iletinin kaç kez alındığını belirlemek için bu değeri kullanabilir.

visibilitytimeout veya numofmessages parametresi aralık dışındaysa, hizmet aşağıdaki örnekte gösterildiği gibi ek hata bilgileriyle birlikte 400 (Hatalı İstek) durum kodunu döndürür.

  
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>  
  

Ayrıca bkz.

Azure Kuyruk Depolama hata kodları
Azure Depolama'ya yönelik istekleri yetkilendirme
Durum ve hata kodları