Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Operacja Put Message
dodaje nowy komunikat na końcu kolejki komunikatów. Można również określić limit czasu widoczności, aby wiadomość była niewidoczna do momentu wygaśnięcia limitu widoczności. Komunikat musi być w formacie, który można uwzględnić w żądaniu XML z kodowaniem UTF-8. Zakodowana wiadomość może mieć rozmiar do 64 kibibajtów (KiB) dla wersji 2011-08-18 lub nowszej lub 8 KiB dla wcześniejszych wersji.
Żądanie
Żądanie Put Message
można skonstruować w następujący sposób. Zalecamy używanie protokołu HTTPS. Zastąp myaccount ciąg nazwą konta magazynu i myqueue
nazwą kolejki:
Metoda | Żądanie URI | Wersja protokołu HTTP |
---|---|---|
POST |
https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> |
Protokół HTTP/1.1 |
Emulowane żądanie usługi magazynu
Podczas wysyłania żądania względem emulowanej usługi magazynu określ nazwę hosta emulatora i port usługi Queue Storage jako 127.0.0.1:10001
, a następnie nazwę emulowanego konta magazynu:
Metoda | Żądanie URI | Wersja protokołu HTTP |
---|---|---|
POST |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> |
Protokół 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 |
---|---|
visibilitytimeout=<int=seconds> |
Opcjonalny. Określa nową wartość limitu czasu widoczności (w sekundach) w stosunku do czasu serwera. Jeśli zostanie określony, żądanie musi zostać wykonane przy użyciu wartości x-ms-version 2011-08-18 lub nowszej. Jeśli nie zostanie określona, wartość domyślna to 0. Nowa wartość musi być większa lub równa 0 i nie może być większa niż 7 dni. Limit czasu widoczności wiadomości nie może być ustawiony na wartość późniejszą niż data wygaśnięcia. Ustaw visibilitytimeout wartość mniejszą niż wartość czasu wygaśnięcia. |
messagettl=<int-seconds> |
Opcjonalny. Określa interwał czasu wygaśnięcia komunikatu w sekundach. W wersjach wcześniejszych niż 2017-07-29 maksymalny dozwolony czas wygaśnięcia wynosi 7 dni. W przypadku wersji 2017-07-29 i nowszych maksymalny czas wygaśnięcia może być dowolną liczbą dodatnią i -1 , co oznacza, że wiadomość nie wygasa. Jeśli ten parametr zostanie pominięty, domyślny czas wygaśnięcia to 7 dni. |
timeout |
Opcjonalny. Parametr timeout jest wyrażony w sekundach. Aby uzyskać więcej informacji, zobacz Ustawianie limitów czasu dla operacji usługi kolejkowania. |
Nagłówki zapytań
Wymagane i opcjonalne nagłówki żądań zostały opisane w poniższej tabeli:
Nagłówek żądania | Opis |
---|---|
Authorization |
To jest wymagane. Określa schemat autoryzacji, nazwę konta i podpis. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do usługi Azure Storage. |
Date
or x-ms-date
|
To jest wymagane. Określa uniwersalny czas koordynowany (UTC) dla żądania. 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 dla usług Azure Storage. |
x-ms-client-request-id |
Opcjonalny. Zapewnia 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. |
Ciało żądania
Treść żądania zawiera dane komunikatu w następującym formacie XML. Należy pamiętać, że treść wiadomości musi być w formacie, który można zakodować za pomocą UTF-8.
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
Przykładowe żądanie
Request:
POST https://myaccount.queue.core.windows.net/messages?visibilitytimeout=30&timeout=30 HTTP/1.1
Headers:
x-ms-version: 2011-08-18
x-ms-date: Tue, 30 Aug 2011 01:03:21 GMT
Authorization: SharedKey myaccount:sr8rIheJmCd6npMSx7DfAY3L//V3uWvSXOzUBCV9wnk=
Content-Length: 100
Body:
<QueueMessage>
<MessageText>PHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg==</MessageText>
</QueueMessage>
Odpowiedź
Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.
Kod stanu
Pomyślna operacja zwraca kod stanu 201 (Utworzono).
Aby uzyskać więcej informacji na temat kodów stanu, zobacz Stan i kody błędów.
Nagłówki odpowiedzi
Odpowiedź dla tej operacji zawiera następujące nagłówki. Odpowiedź może również zawierać dodatkowe standardowe nagłówki HTTP. Wszystkie standardowe nagłówki są zgodne ze specyfikacją protokołu HTTP/1.1 .
Nagłówek żądania | Opis |
---|---|
x-ms-request-id |
Unikatowo identyfikuje żądanie, które zostało wykonane, 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 |
Wskazuje wersję usługi Kolejki, która została użyta do wykonania żądania. Ten nagłówek jest zwracany dla żądań, 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 |
Ten nagłówek może służyć do rozwiązywania problemów z żądaniami i odpowiadającymi odpowiedziami. Wartość tego nagłówka jest równa wartości nagłówka x-ms-client-request-id , jeśli znajduje się w żądaniu, a wartość nie zawiera więcej niż 1024 widocznych znaków ASCII. Jeśli nagłówek x-ms-client-request-id nie znajduje się w żądaniu, nie będzie on obecny w odpowiedzi. |
Ciało odpowiedzi
Od wersji 2016-05-31 odpowiedź na Put Message
operację zawiera informacje o komunikacie w treści odpowiedzi. Format XML zwracanej treści jest opisany tutaj.
Element MessageID
jest wartością identyfikatora GUID, która identyfikuje komunikat w kolejce. Ta wartość jest przypisywana do komunikatu przez usługę Queue Storage i jest nieprzezroczysta dla klienta. Ta wartość może być używana razem z wartością elementu PopReceipt w celu usunięcia lub zaktualizowania komunikatu z kolejki. Wartość PopReceipt jest również nieprzezroczysta dla klienta i jest wymagana w przypadku korzystania z interfejsów API usuwania komunikatu lub aktualizowania komunikatu.
Elementy InsertionTime
, ExpirationTime
i TimeNextVisible
są reprezentowane jako wartości UTC i formatowane zgodnie z opisem w dokumencie RFC 1123.
<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>
</QueueMessage>
</QueueMessagesList>
Przykładowa odpowiedź
Response Status:
HTTP/1.1 200 OK
Response headers:
Transfer-Encoding: chunked
Content-Type: application/xml
x-ms-version: 2016-05-31
Date: Fri, 09 Oct 2016 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 2016 21:04:30 GMT</InsertionTime>
<ExpirationTime>Fri, 16 Oct 2016 21:04:30 GMT</ExpirationTime>
<PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>
<TimeNextVisible>Fri, 09 Oct 2016 23:29:20 GMT</TimeNextVisible>
</QueueMessage>
</QueueMessagesList>
Autoryzacja
Ta operacja może być wykonywana przez właściciela konta i przez dowolną osobę z sygnaturą dostępu współdzielonego z uprawnieniami do wykonywania tej operacji.
Uwagi
Opcjonalny limit czasu widoczności określa czas, w którym wiadomość jest niewidoczna. Po upływie limitu czasu komunikat stanie się widoczny. Jeśli limit czasu widoczności nie zostanie określony, zostanie użyta wartość domyślna 0.
Opcjonalny czas wygaśnięcia komunikatu określa, jak długo komunikat pozostaje w kolejce. Komunikat jest usuwany z kolejki po wygaśnięciu okresu wygaśnięcia.
Komunikat musi być w formacie, który można uwzględnić w żądaniu XML z kodowaniem UTF-8. Aby dołączyć znaczniki do wiadomości, zawartość wiadomości musi być zeskryptowana w XML lub zakodowana w formacie Base64. Wszystkie znaczniki XML w wiadomości, które nie zostały zmienione lub zakodowane, są usuwane przed dodaniem wiadomości do kolejki. Jeśli nieprawidłowy znak (np.0x1F
) jest poprzedzony znakiem ucieczki XML lub zakodowanym w formacie Base64 w komunikacie, kolejne odczyty komunikatu nie zakończą się pomyślnie.
Jeśli wiadomość jest zbyt duża, usługa zwraca kod stanu 400 (Nieprawidłowe żądanie).
Zobacz także
autoryzowanie żądań do usługi Azure Storage
kody stanu i błędów
Kody błędów usługi kolejki