Delen via


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:
  • JSON-webtoken (JWT) van Azure Active Directory (Azure AD).
    Bijvoorbeeld: Authorization: Bearer <Azure AD JWT token>.
    Zie Verifiëren vanuit een toepassing voor meer informatie over het genereren van een Azure AD-token.
  • Een SAS-token.
    Bijvoorbeeld: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Zie Een Shared Access Signature-token genereren en SAS-token genereren voor meer informatie over het genereren van een SAS-token.
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 BrokeredPropertiesbevat 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  

Zie ook

Voorbeeld van Service Bus HTTP-client