Share via


Nachricht senden

Sendet eine Nachricht an eine Service Bus-Warteschlange oder ein Service Bus-Thema.

Anforderung

Methode Anforderungs-URI HTTP-Version
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1

Anforderungsheader

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben. Zusätzlich zu den aufgelisteten Eigenschaften kann der Header auch benutzerdefinierte Eigenschaften enthalten. Siehe das Beispiel.

Anforderungsheader BESCHREIBUNG
Authorization Geben Sie einen der folgenden Tokenwerte an:
Content-Type Legen Sie den entsprechenden Inhaltstyp für den bereitgestellten Entitätstext (Nachrichtennutzlast) fest.
BrokerProperties JSON-codierter Satz von BrokeredMessage-Eigenschaften.
x-ms-retrypolicy (Optional) Legen Sie auf fest NoRetry , um automatische Wiederholungsversuche bei Sendevorgängen zu deaktivieren, wenn vorübergehende Fehler auftreten.

Anforderungstext

Der Anforderungstext ist die Nachrichtennutzlast.

Wenn die Nachricht über ein anderes Protokoll als HTTP/HTTPS empfangen werden soll, muss der Nachrichtentext serialisiert werden. beispielsweise mit einem XML-System.Runtime.Serialization.DataContractSerializer. Beispiel:

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

Der vorstehende Code gibt den folgenden Nachrichtentext aus:

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

Sie können die Nachricht mit dem folgenden Code empfangen und verarbeiten:

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

Antwort

Die Antwort enthält den HTTP-Statuscode und einen Satz von Antwortheadern.

Antwortcodes

Code BESCHREIBUNG
201 Nachricht erfolgreich an Warteschlange bzw. Thema gesendet.
400 Ungültige Anforderung.
401 Autorisierungsfehler
403 Kontingent überschritten oder Nachricht zu groß.
410 Angegebene Warteschlange bzw. Thema existiert nicht.
500 Interner Fehler.

Informationen zu status Codes finden Sie unter Status- und Fehlercodes.

Antwortheader

Content-type wie übergeben.

Antworttext

Keine.

Beispiel

Die folgende HTTP-Anforderung sendet eine Nachricht an eine Warteschlange oder ein Thema. Die Nachricht hat die folgenden Eigenschaften:

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

Zusätzlich zu BrokeredPropertiesenthält die Nachricht die folgenden benutzerdefinierten Eigenschaften: Priority=High und 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 gibt die folgende Antwort zurück:

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  

Weitere Informationen

Servicebus-HTTP-Client-Beispiel