Bericht verzenden
Hiermee wordt een bericht verzonden naar een Service Bus-wachtrij of -onderwerp.
Aanvraag
Methode | Aanvraag-URI | HTTP-versie |
---|---|---|
POST | http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1 |
Aanvraagheaders
In de volgende tabel worden vereiste en optionele aanvraagheaders beschreven. Naast de vermelde eigenschappen kan de header aangepaste eigenschappen bevatten. Zie het voorbeeld.
Aanvraagkoptekst | Beschrijving |
---|---|
Authorization |
Geef een van de volgende tokenwaarden op:
|
Content-Type |
Stel het juiste inhoudstype in voor de geplaatste entiteitstekst (nettolading van het bericht). |
BrokerProperties |
JSON-gecodeerde set BrokeredMessage eigenschappen. |
x-ms-retrypolicy |
(Optioneel) Ingesteld op NoRetry om automatische nieuwe pogingen bij verzendbewerkingen uit te schakelen wanneer tijdelijke fouten optreden. |
Aanvraagbody
De aanvraagtekst is de nettolading van het bericht.
Als het bericht moet worden ontvangen via een ander protocol dan HTTP/HTTPS, moet de berichttekst worden geserialiseerd; bijvoorbeeld met een XML System.Runtime.Serialization.DataContractSerializer. Bijvoorbeeld:
MemoryStream ms = new MemoryStream();
DataContractSerializer serializer = new DataContractSerializer(typeof(string));
serializer.WriteObject(ms, "This is a message.");
byte[] body = ms7.ToArray();
De voorgaande code produceert de volgende berichttekst:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">This is a message.</string>
U kunt het bericht ontvangen en verwerken met de volgende code:
BrokeredMessage message = queueClient.Receive();
string body = message.GetBody<string>(new DataContractSerializer(typeof(string)));
Antwoord
Het antwoord bevat een HTTP-statuscode en een set antwoordheaders.
Antwoordcodes
Code | Beschrijving |
---|---|
201 | Het bericht is verzonden naar de wachtrij of het onderwerp. |
400 | Ongeldige aanvraag. |
401 | Autorisatiefout. |
403 | Het quotum is overschreden of het bericht is te groot. |
410 | De opgegeven wachtrij of het opgegeven onderwerp bestaat niet. |
500 | Interne fout. |
Zie Status- en foutcodes voor meer informatie over statuscodes.
Antwoordheaders
Inhoudstype zoals doorgegeven.
Hoofdtekst van antwoord
Geen.
Voorbeeld
Met de volgende HTTP-aanvraag wordt een bericht verzonden naar een wachtrij of onderwerp. Het bericht heeft de volgende eigenschappen:
Label: "M1"
TimeToLive: 10 seconds
State: Active
Message body: "This is a message."
Naast de BrokeredProperties
bevat het bericht de volgende aangepaste eigenschappen: Priority=High
en 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.
Service Bus retourneert het volgende antwoord:
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