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