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 BrokeredProperties
enthä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