Condividi tramite


Invia messaggio

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

Richiesta

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

Intestazioni della richiesta

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

Intestazione richiesta Descrizione
Authorization Specificare uno dei valori di token seguenti:
Content-Type Impostare il tipo di contenuto appropriato per il corpo dell'entità inviato (payload del messaggio).
BrokerProperties Set con codifica JSON di proprietà BrokeredMessage.
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. Per 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

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

Codici di risposta

Codice Descrizione
201 Messaggio inviato correttamente alla coda o all'argomento.
400 Richiesta non valida.
401 Errore di autorizzazione.
403 Quota superata o messaggio troppo grande.
410 La coda o l'argomento specificato non esiste.
500 Errore interno.

Per informazioni sui codici di stato, vedere Status and Error Codes.

Annotazioni

Se si riceve una risposta 401 Non autorizzata, verificare che il token di firma di accesso condiviso nell'intestazione Authorization sia costruito, firmato, codificato in URL correttamente e corrisponda all'URI esatto dell'entità del bus di servizio.

Intestazioni di risposta

tipo di contenuto come passato.

Corpo della risposta

Nessuno.

Esempio

La richiesta HTTP seguente 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 alla 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