Dapatkan Pesan

Operasi mengambil Get Messages satu atau beberapa pesan dari depan antrean.

Minta

Permintaan Get Messages dapat dibuat sebagai berikut. Kami menyarankan agar Anda menggunakan HTTPS. Ganti myaccount dengan nama akun penyimpanan Anda, dan ganti myqueue dengan nama antrean Anda:

Metode Meminta URI Versi HTTP
GET https://myaccount.queue.core.windows.net/myqueue/messages HTTP/1.1

Permintaan layanan penyimpanan yang ditimulasikan

Saat Anda membuat permintaan terhadap layanan penyimpanan yang ditimulasi, tentukan nama host emulator dan port Azure Queue Storage sebagai 127.0.0.1:10001, diikuti dengan nama akun penyimpanan yang ditimulasi:

Metode Meminta URI Versi HTTP
GET http://127.0.0.1:10001/devstoreaccount1/myqueue/messages HTTP/1.1

Untuk informasi selengkapnya, lihat Gunakan emulator Azurite untuk pengembangan Microsoft Azure Storage lokal.

Parameter URI

Parameter tambahan berikut dapat ditentukan pada URI permintaan.

Parameter Deskripsi
numofmessages Opsional. Nilai bilangan bulat bukan nol yang menentukan jumlah pesan yang akan diambil dari antrean, hingga maksimum 32. Jika lebih sedikit pesan terlihat, pesan yang terlihat akan dikembalikan. Secara default, satu pesan diambil dari antrean dengan operasi ini.
visibilitytimeout Pilihan. Menentukan nilai batas waktu visibilitas baru, dalam hitungan detik, relatif terhadap waktu server. Nilai default-nya adalah 30 detik.

Nilai yang ditentukan harus lebih besar dari atau sama dengan 1 detik, dan tidak boleh lebih besar dari 7 hari, atau lebih besar dari 2 jam pada versi protokol REST yang lebih awal dari 2011-08-18. Batas waktu visibilitas pesan dapat diatur ke nilai lebih lambat dari waktu kedaluwarsa.
timeout Opsional. Parameter timeout dinyatakan dalam hitung detik. Untuk informasi selengkapnya, lihat Mengatur waktu habis untuk operasi Azure Queue Storage.

Header permintaan

Tabel berikut ini menjelaskan header permintaan yang diperlukan dan opsional.

Meminta kop Deskripsi
Authorization Wajib diisi. Menentukan skema otorisasi, nama akun, dan tanda tangan. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
Date atau x-ms-date Wajib diisi. Menentukan Waktu Universal Terkoordinasi (UTC) untuk permintaan tersebut. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke Azure Storage.
x-ms-version Pilihan. Menentukan versi operasi yang akan digunakan untuk permintaan ini. Untuk informasi selengkapnya, lihat Penerapan versi untuk layanan Azure Storage.
x-ms-client-request-id Opsional. Menyediakan nilai buram yang dihasilkan klien dengan batas karakter 1 kibibyte (KiB) yang dicatat dalam log saat pengelogan dikonfigurasi. Kami sangat menyarankan Anda menggunakan header ini untuk menghubungkan aktivitas sisi klien dengan permintaan yang diterima server. Untuk informasi selengkapnya, lihat Memantau Azure Queue Storage.

Isi permintaan

Tidak ada.

Respons

Respons mencakup kode status HTTP dan sekumpulan header respons.

Kode status

Operasi yang berhasil mengembalikan kode status 200 (OK).

Untuk informasi selengkapnya tentang kode status, lihat Kode status dan kesalahan.

Header respons

Respons untuk operasi ini mencakup header berikut. Respons juga dapat mencakup header HTTP standar tambahan. Semua header standar sesuai dengan spesifikasi protokol HTTP/1.1.

Header respons Deskripsi
x-ms-request-id Secara unik mengidentifikasi permintaan yang dibuat dan dapat digunakan untuk memecahkan masalah permintaan. Untuk informasi selengkapnya, lihat Memecahkan masalah operasi API.
x-ms-version Menunjukkan versi Azure Queue Storage yang digunakan untuk menjalankan permintaan. Header ini dikembalikan untuk permintaan yang dibuat terhadap versi 2009-09-19 dan yang lebih baru.
Date Nilai tanggal/waktu UTC yang dihasilkan oleh layanan, yang menunjukkan waktu saat respons dimulai.
x-ms-client-request-id Dapat digunakan untuk memecahkan masalah permintaan dan respons yang sesuai. Nilai header ini sama dengan nilai x-ms-client-request-id header jika ada dalam permintaan dan nilainya berisi tidak lebih dari 1.024 karakter ASCII yang terlihat. x-ms-client-request-id Jika header tidak ada dalam permintaan, header tidak akan ada dalam respons.

Isi Respons

XML respons untuk Get Messages operasi dikembalikan dalam format berikut.

Elemen MessageID adalah nilai GUID yang mengidentifikasi pesan dalam antrean. Nilai ini ditetapkan ke pesan oleh Azure Queue Storage dan buram kepada klien. Anda dapat menggunakan nilai bersama dengan nilai PopReceipt elemen untuk menghapus pesan dari antrean setelah Anda mengambilnya dengan menggunakan Get Messages operasi. Nilai PopReceipt juga buram bagi klien. Satu-satunya tujuannya adalah untuk memastikan bahwa pesan dapat dihapus dengan operasi Hapus Pesan .

Elemen InsertionTime, ExpirationTime, dan TimeNextVisible direpresentasikan sebagai nilai UTC dan diformat seperti yang dijelaskan dalam RFC 1123.

Elemen DequeueCount memiliki nilai 1 saat pertama kali pesan dibatalkan antreannya. Nilai ini bertahap setiap kali pesan kemudian dilenyapkan dari antrean.

Catatan

Elemen DequeueCount dikembalikan dalam isi respons hanya jika antrean dibuat dengan menggunakan Azure Queue Storage versi 2009-09-19.

<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>  

Respons sampel

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>  

Authorization

Operasi ini dapat dilakukan oleh pemilik akun dan oleh siapa pun dengan tanda tangan akses bersama yang memiliki izin untuk melakukan operasi ini.

Keterangan

Konten pesan diambil dalam format yang digunakan untuk operasi Letakkan Pesan .

Saat pesan diambil dari antrean, respons menyertakan pesan dan nilai tanda terima pop, yang diperlukan untuk menghapus pesan. Pesan tidak dihapus secara otomatis dari antrean, tetapi setelah diambil, pesan tidak terlihat oleh klien lain untuk interval waktu yang ditentukan oleh visibilitytimeout parameter.

Jika beberapa pesan diambil, setiap pesan memiliki tanda terima pop terkait. Jumlah maksimum pesan yang dapat diambil pada saat yang sama adalah 32.

Klien yang mengambil pesan diharapkan untuk menghapus pesan setelah diproses dan sebelum waktu yang ditentukan oleh TimeNextVisible elemen respons, yang dihitung berdasarkan nilai visibilitytimeout parameter. Nilai visibilitytimeout ditambahkan ke waktu ketika pesan diambil untuk menentukan nilai TimeNextVisible.

Karena kecondongan jam, pesan yang diambil dengan tertentu visibilitytimeout dapat muncul kembali sebelum waktu habis yang ditentukan telah berlalu. Perhatikan bahwa klien dapat menyimpulkan bahwa pesan telah di-dequeu oleh klien yang berbeda berdasarkan tanda terima pop, yang unik untuk setiap penghapusan antrean pesan. Jika tanda terima pop klien tidak lagi berfungsi untuk menghapus atau memperbarui pesan, dan klien menerima kesalahan 404 (Tidak Ditemukan), pesan telah dihapus dari antrean oleh klien lain.

Biasanya, ketika konsumen mengambil pesan melalui Get Messages, pesan tersebut dicadangkan untuk dihapus hingga interval batas waktu visibilitas berakhir. Tetapi perilaku ini tidak dijamin. Setelah interval visibilitytimeout kedaluwarsa, pesan kembali terlihat oleh konsumen lain. Jika pesan kemudian tidak diambil dan dihapus oleh konsumen lain, konsumen asli dapat menghapus pesan dengan menggunakan tanda terima pop asli.

Saat pesan diambil untuk pertama kalinya, propertinya DequeueCount diatur ke 1. Jika tidak dihapus dan kemudian diambil lagi, DequeueCount properti akan dinaikkan. Klien dapat menggunakan nilai ini untuk menentukan berapa kali pesan telah diambil.

Jika parameter visibilitytimeout atau numofmessages berada di luar rentang, layanan mengembalikan kode status 400 (Permintaan Buruk), bersama dengan informasi kesalahan tambahan, seperti yang ditunjukkan dalam contoh berikut.

  
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>  
  

Lihat juga

Kode kesalahan Azure Queue Storage
Mengotorisasi permintaan ke Azure Storage
Status dan kode galat