Condividi tramite


Invia messaggio

Invia un messaggio a una coda o a un argomento del bus di servizio.

Richiesta

Metodo URI richiesta Versione HTTP
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1

Intestazioni richiesta

Nella seguente tabella vengono descritte le intestazioni di richiesta obbligatorie e facoltative. Oltre alle proprietà elencate, l'intestazione può contenere proprietà personalizzate. Vedere l'esempio.

Intestazione della richiesta Descrizione
Authorization Specificare uno dei valori di token seguenti:
Content-Type Impostare il tipo di contenuto appropriato per il corpo dell'entità inviata (payload del messaggio).
BrokerProperties Set di proprietà BrokeredMessage con codifica JSON.
x-ms-retrypolicy (Facoltativo) Impostare su NoRetry per disabilitare i tentativi automatici sulle operazioni di invio quando si verificano errori temporanei.

Corpo della richiesta

Il corpo della richiesta è il payload del messaggio.

Se il messaggio deve essere ricevuto tramite un protocollo diverso da HTTP/HTTPS, il corpo del messaggio deve essere serializzato; ad esempio con un xml System.Runtime.Serialization.DataContractSerializer. Ad esempio:

MemoryStream ms = new MemoryStream();  
DataContractSerializer serializer = new DataContractSerializer(typeof(string));  
serializer.WriteObject(ms, "This is a message.");  
byte[] body = ms7.ToArray();  

Il codice precedente produce il corpo del messaggio seguente:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">This is a message.</string>  

È possibile ricevere ed elaborare il messaggio con il codice seguente:

BrokeredMessage message = queueClient.Receive();  
string body = message.GetBody<string>(new DataContractSerializer(typeof(string)));  

Risposta

Nella risposta sono inclusi un codice di stato HTTP e un set di intestazioni per la risposta.

Codici di risposta

Codice Descrizione
201 Invio del messaggio alla coda o all'argomento riuscito.
400 Richiesta non valida.
401 Errore di autorizzazione.
403 Quota superata o messaggio troppo grande.
410 Coda o argomento specificato inesistente.
500 Errore interno.

Per informazioni sui codici di stato, vedere Codici di stato e di errore.

Intestazioni della risposta

Content-type, in base a quanto passato.

Corpo della risposta

No.

Esempio

La seguente richiesta HTTP invia un messaggio a una coda o a un argomento. Il messaggio ha le proprietà seguenti:

Label: "M1"  
TimeToLive: 10 seconds  
State: Active  
Message body: "This is a message."  

Oltre a BrokeredProperties, il messaggio contiene le proprietà personalizzate seguenti: Priority=High e Customer="12345,ABC".

POST https://your-namespace.servicebus.windows.net/HttpClientSampleQueue/messages?timeout=60 HTTP/1.1  
Authorization: SharedAccessSignature sr=your-namespace&sig=Fg8yUyR4MOmXfHfj55f5hY4jGb8x2Yc%2b3%2fULKZYxKZk%3d&se=1404256819&skn=RootManageSharedAccessKey  
BrokerProperties: {"Label":"M1","State":"Active","TimeToLive":10}  
Priority: High  
Customer: 12345,ABC  
Content-Type: application/atom+xml;type=entry;charset=utf-8  
Host: your-namespace.servicebus.windows.net  
Content-Length: 18  
Expect: 100-continue  
  
This is a message.  

Il bus di servizio restituisce la risposta seguente:

HTTP/1.1 201 Created  
Transfer-Encoding: chunked  
Content-Type: application/xml; charset=utf-8  
Server: Microsoft-HTTPAPI/2.0  
Date: Tue, 01 Jul 2014 23:00:22 GMT  
  
0  

Vedere anche

Esempio di client HTTP del bus di servizio