Freigeben über


Nachricht senden

Sendet eine Nachricht an eine Servicebus-Warteschlange oder ein Thema.

Bitten

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

Anforderungsheader

In der folgenden Tabelle werden die erforderlichen und optionalen Anforderungsheader beschrieben. Zusätzlich zu den aufgelisteten Eigenschaften kann die Kopfzeile benutzerdefinierte Eigenschaften enthalten. Sehen Sie sich das Beispiel an.

Anforderungsheader Beschreibung
Authorization Geben Sie einen der folgenden Tokenwerte an:
Content-Type Legen Sie den entsprechenden Inhaltstyp für den geposteten Entitätstext (Nachrichtennutzlast) fest.
BrokerProperties JSON-codierter Satz von BrokeredMessage Eigenschaften.
x-ms-retrypolicy (Optional) Legen Sie auf NoRetry fest, um den automatischen 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. Zum Beispiel:

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

Der vorangehende Code erzeugt den folgenden Nachrichtentext:

<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 einen HTTP-Statuscode und eine Reihe von Antwortheadern.

Antwortcodes

Code Beschreibung
201 Nachricht wurde erfolgreich an Warteschlange oder Thema gesendet.
400 Ungültige Anforderung.
401 Autorisierungsfehler.
403 Kontingent überschritten oder Nachricht zu groß.
410 Die angegebene Warteschlange oder das angegebene Thema ist nicht vorhanden.
500 Interner Fehler.

Informationen zu Statuscodes finden Sie unter Status- und Fehlercodes.

Hinweis

Wenn Sie eine 401 Unauthorized Response erhalten, überprüfen Sie, ob das SAS-Token im Authorization-Header ordnungsgemäß erstellt, signiert und URL-codiert ist und mit dem genauen URI der Service Bus-Entität übereinstimmt.

Antwortheader

Inhaltstyp als übergeben.

Antworttext

Nichts.

Beispiel

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

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

Zusätzlich zum 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  

Siehe auch