Condividi tramite


Inserisci messaggio

L'operazione Put Message aggiunge un nuovo messaggio alla fine della coda di messaggi. È inoltre possibile specificare un timeout di visibilità per rendere il messaggio invisibile fino alla scadenza del timeout di visibilità. Un messaggio deve essere in un formato che può essere incluso in una richiesta XML con codifica UTF-8. Il messaggio codificato può avere una dimensione massima di 64 kibibyte (KiB) per la versione 2011-08-18 e successive o di 8 KiB per le versioni precedenti.

Richiesta

È possibile costruire la richiesta di Put Message 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 della 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 per il servizio di archiviazione emulato, specificare il nome host dell'emulatore e la porta di archiviazione code come 127.0.0.1:10001, seguiti dal nome dell'account di archiviazione emulato:

Metodo URI della 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> Opzionale. Specifica il nuovo valore di timeout di visibilità, in secondi, rispetto all'ora del server. Se viene specificato, la richiesta deve essere effettuata utilizzando un x-ms-version numero di 2011-08-18 o versione successiva. Se non viene 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 della durata (TTL).
messagettl=<int-seconds> Opzionale. Specifica l'intervallo di tempo per il messaggio, espresso in secondi. Nelle versioni precedenti al 2017-07-29, la durata massima consentita è di 7 giorni. Per la versione 2017-07-29 e successive, la durata massima può essere qualsiasi numero positivo e -1, che indica che il messaggio non scade. Se questo parametro viene omesso, la durata predefinita è di 7 giorni.
timeout Opzionale. Il parametro timeout è espresso in secondi. Per altre informazioni, vedere Impostare timeout per le operazioni del servizio di accodamento.

Header di richiesta

Le intestazioni di richiesta obbligatorie e facoltative sono descritte nella tabella seguente:

Header di 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 l'ora UTC (Coordinated Universal Time) per la richiesta. Per altre informazioni, vedere Autorizzare le richieste ad Archiviazione di Azure.
x-ms-version Opzionale. Specifica la versione dell'operazione da utilizzare per questa richiesta. Per ulteriori informazioni, consultare Controllo delle versioni per i servizi di Archiviazione di Azure.
x-ms-client-request-id Opzionale. Fornisce un valore opaco generato dal client con un limite di caratteri di 1 kibibyte (KiB) registrato nei log quando viene configurata la registrazione. È consigliabile usare questa intestazione per correlare le attività sul lato client alle richieste ricevute dal server.

Testo della richiesta

Il corpo della richiesta contiene i dati del 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>  

Esempio di richiesta

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

La risposta include un codice di stato HTTP e un set di intestazioni di risposta.

Codice di stato

Un'operazione riuscita restituisce il codice di stato 201 (Creato).

Per altre informazioni sui codici di stato, vedere Stato e codici di errore.

Intestazioni di risposta

La risposta per questa operazione include le intestazioni seguenti. La risposta può includere anche intestazioni HTTP standard aggiuntive. Tutte le intestazioni standard sono conformi alla specifica del protocollo HTTP/1.1 .

Header di richiesta Descrizione
x-ms-request-id Identifica in modo univoco la richiesta effettuata ed è possibile usarla per risolvere i problemi della richiesta. Per altre informazioni, vedere Risolvere i problemi relativi alle operazioni API.
x-ms-version Indica la versione del servizio di accodamento utilizzata 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 di avvio della risposta.
x-ms-client-request-id Questa intestazione può essere usata per risolvere i problemi relativi alle richieste e alle 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 per il client. Questo valore può essere utilizzato insieme al valore dell'elemento PopReceipt per eliminare o aggiornare un messaggio dalla coda. Anche il valore di PopReceipt è opaco per il client ed è necessario quando si usano le API Delete Message o Update Message.

Gli InsertionTimeelementi , ExpirationTime, e sono TimeNextVisible 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 disponga di una firma di accesso condiviso con le autorizzazioni per eseguire questa operazione.

Osservazioni:

Il timeout di visibilità facoltativo specifica il tempo in cui il messaggio è invisibile. Alla scadenza del timeout, il messaggio diventa visibile. Se non si specifica un timeout di visibilità, viene utilizzato il valore predefinito 0.

La durata facoltativa del messaggio specifica per quanto tempo un messaggio rimane nella coda. Il messaggio viene eliminato dalla coda alla scadenza del periodo di durata.

Un messaggio deve essere in un formato che può essere incluso in una richiesta XML con codifica UTF-8. Per includere markup nel messaggio, il contenuto del messaggio deve essere con escape XML o con codifica Base64. Qualsiasi markup XML nel messaggio che non sia preceduto da caratteri di escape o codificati viene rimosso prima che il messaggio venga aggiunto alla coda. Se un carattere non valido (ad esempio, 0x1F) è preceduto da caratteri di escape XML o codificato in Base64 nel messaggio, le letture successive del messaggio non avranno esito positivo.

Se il messaggio è troppo grande, il servizio restituisce il codice di stato 400 (Richiesta non valida).

Vedere anche

Autorizzare le richieste ad Archiviazione di Azure
Stato e codici errore
Codici di errore del servizio di accodamento