Put Message
Tramite l'operazione Put Message
viene aggiunto un nuovo messaggio in fondo alla coda di messaggi. È anche possibile specificare un timeout di visibilità per rendere invisibile il messaggio fino alla scadenza del timeout della visibilità. Un messaggio deve avere un formato che ne consenta l'inserimento in una richiesta XML con codifica UTF-8. Il messaggio codificato può essere fino a 64 kibibyte (KiB) con dimensioni per la versione 2011-08-18 e versioni successive o 8 KiB per le versioni precedenti.
Richiesta
È possibile costruire la Put Message
richiesta come indicato di seguito. È consigliabile usare HTTPS. Sostituire myaccount con il nome dell'account di archiviazione e myqueue
con il nome della coda:
Metodo | URI richiesta | Versione HTTP |
---|---|---|
POST |
https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> |
HTTP/1.1 |
Richiesta del servizio di archiviazione emulata
Quando si effettua una richiesta con il servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta di archiviazione code come 127.0.0.1:10001
, seguita dal nome dell'account di archiviazione emulato:
Metodo | URI richiesta | Versione HTTP |
---|---|---|
POST |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> |
HTTP/1.1 |
Per altre informazioni, vedere Usare l'emulatore Azurite per lo sviluppo locale di Archiviazione di Azure.
Parametri URI
È possibile specificare i parametri seguenti nell'URI della richiesta:
Parametro | Descrizione |
---|---|
visibilitytimeout=<int=seconds> |
Facoltativa. Specifica il nuovo valore di timeout della visibilità, in secondi, rispetto al tempo del server. Se è specificato, la richiesta deve essere effettuata usando un x-ms-version valore pari a 2011-08-18 o versione successiva. Se non è specificato, il valore predefinito è 0. Il nuovo valore deve essere maggiore o uguale a 0 e non può essere maggiore di 7 giorni. Il timeout di visibilità di un messaggio non può essere impostato su un valore successivo alla data di scadenza. Impostare visibilitytimeout su un valore inferiore al valore time-to-live. |
messagettl=<int-seconds> |
Facoltativa. Specifica l'intervallo TTL del messaggio, in secondi. Nelle versioni precedenti al 2017-07-29, il tempo massimo consentito è di 7 giorni. Per la versione 2017-07-29 e versioni successive, il tempo massimo da usare può essere qualsiasi numero positivo e -1 , che indica che il messaggio non scade. Se questo parametro viene omesso, il valore TTL predefinito è 7 giorni. |
timeout |
Facoltativa. Il parametro timeout viene espresso in secondi. Per altre informazioni, vedere Impostare timeout per le operazioni del servizio code. |
Intestazioni della richiesta
Le intestazioni di richiesta obbligatorie e facoltative sono descritte nella tabella seguente:
Intestazione della richiesta | Descrizione |
---|---|
Authorization |
Obbligatorio. Specifica lo schema di autorizzazione, il nome dell'account e la firma. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
Date or x-ms-date |
Obbligatorio. Specifica la data per la richiesta nel fuso orario UTC (Coordinated Universal Time). Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure. |
x-ms-version |
Facoltativa. Specifica la versione dell'operazione da usare per questa richiesta. Per altre informazioni, vedere Controllo delle versioni per i servizi di archiviazione di Azure. |
x-ms-client-request-id |
Facoltativa. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log quando la registrazione è configurata. È consigliabile usare questa intestazione per correlare le attività lato client con le richieste ricevute dal server. |
Testo della richiesta
Il corpo della richiesta contiene i dati di messaggio nel seguente formato XML. Si noti che il contenuto del messaggio deve essere in un formato che può essere codificato con UTF-8.
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
Richiesta di esempio
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>
Risposta
Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.
Codice stato
Un'operazione completata correttamente restituisce il codice di stato 201 (Creato).
Per altre informazioni sui codici di stato, vedere Codici di stato e di errore.
Intestazioni di risposta
Nella risposta per questa operazione sono incluse le intestazioni riportate di seguito; inoltre, possono essere incluse intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1.
Intestazione della richiesta | Descrizione |
---|---|
x-ms-request-id |
Identifica in modo univoco la richiesta effettuata e puoi usarla per risolvere la risoluzione dei problemi della richiesta. Per altre informazioni, vedere Risolvere i problemi relativi alle operazioni api. |
x-ms-version |
Indica la versione del servizio code usata per eseguire la richiesta. Questa intestazione viene restituita per le richieste effettuate rispetto alla versione 2009-09-19 e successive. |
Date |
Valore di data/ora UTC generato dal servizio, che indica l'ora in cui è stata avviata la risposta. |
x-ms-client-request-id |
Questa intestazione può essere usata per risolvere le richieste e le risposte corrispondenti. Il valore di questa intestazione è uguale al valore dell'intestazione x-ms-client-request-id se presente nella richiesta e il valore non contiene più di 1.024 caratteri ASCII visibili. Se l'intestazione x-ms-client-request-id non è presente nella richiesta, non sarà presente nella risposta. |
Corpo della risposta
A partire dalla versione 2016-05-31, la risposta per l'operazione Put Message
contiene le informazioni sul messaggio nel corpo della risposta. Il formato XML del corpo restituito è descritto qui.
L'elemento MessageID
è un valore GUID che identifica il messaggio nella coda. Questo valore viene assegnato al messaggio da Archiviazione code ed è opaco al client. Questo valore può essere usato insieme al valore dell'elemento PopReceipt per eliminare o aggiornare un messaggio dalla coda. Il valore di PopReceipt è anche opaco al client ed è necessario quando si usano le API Elimina messaggio o Aggiorna messaggio.
Gli elementi InsertionTime
, ExpirationTime
e TimeNextVisible
vengono rappresentati come valori UTC e formattati come descritto in 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>
Risposta di esempio
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>
Autorizzazione
Questa operazione può essere eseguita dal proprietario dell'account e da chiunque abbia una firma di accesso condiviso con autorizzazioni per eseguire questa operazione.
Commenti
Il timeout di visibilità facoltativo specifica il tempo in cui il messaggio è invisibile. Dopo la scadenza del timeout, il messaggio diventa visibile. Se non si specifica un timeout di visibilità, viene usato il valore predefinito 0.
Il time-to-live del messaggio facoltativo specifica quanto tempo rimane un messaggio nella coda. Il messaggio viene eliminato dalla coda quando scade il periodo di tempo a tempo.
Un messaggio deve avere un formato che ne consenta l'inserimento in una richiesta XML con codifica UTF-8. Per includere commenti nel messaggio, il contenuto del messaggio deve essere in formato XML con caratteri escape o con codifica Base64. Qualsiasi markup XML nel messaggio senza escape o codificato viene rimosso prima che il messaggio venga aggiunto alla coda.
Se il messaggio è di dimensioni eccessive, il servizio restituisce il codice di stato 400 (Richiesta non valida).
Vedi anche
Autorizzare le richieste ad Archiviazione di Azure
Stato e codici errore
Codici di errore del servizio code