Wyślij wiadomość
Wysyła komunikat do kolejki lub tematu usługi Service Bus.
Żądanie
Metoda | Identyfikator URI żądania | Wersja PROTOKOŁU HTTP |
---|---|---|
POST | http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1 |
Nagłówki żądań
W poniższej tabeli opisano wymagane i opcjonalne nagłówki żądań. Oprócz wymienionych właściwości nagłówek może zawierać właściwości niestandardowe. Zobacz przykład.
Nagłówek żądania | Opis |
---|---|
Authorization |
Określ jedną z następujących wartości tokenu:
|
Content-Type |
Ustaw odpowiedni typ zawartości dla treści jednostki opublikowanej (ładunek komunikatu). |
BrokerProperties |
Zestaw właściwości zakodowany BrokeredMessage w formacie JSON. |
x-ms-retrypolicy |
(Opcjonalnie) Ustaw wartość , aby NoRetry wyłączyć automatyczne ponawianie próby podczas operacji wysyłania w przypadku wystąpienia błędów przejściowych. |
Treść żądania
Treść żądania to ładunek komunikatu.
Jeśli komunikat ma zostać odebrany za pośrednictwem protokołu innego niż HTTP/HTTPS, treść komunikatu musi być serializowana; na przykład za pomocą elementu XML System.Runtime.Serialization.DataContractSerializer. Przykład:
MemoryStream ms = new MemoryStream();
DataContractSerializer serializer = new DataContractSerializer(typeof(string));
serializer.WriteObject(ms, "This is a message.");
byte[] body = ms7.ToArray();
Powyższy kod generuje następującą treść komunikatu:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">This is a message.</string>
Komunikat można odbierać i przetwarzać za pomocą następującego kodu:
BrokeredMessage message = queueClient.Receive();
string body = message.GetBody<string>(new DataContractSerializer(typeof(string)));
Reakcja
Odpowiedź zawiera kod stanu HTTP i zestaw nagłówków odpowiedzi.
Kody odpowiedzi
Kod | Opis |
---|---|
201 | Komunikat został pomyślnie wysłany do kolejki lub tematu. |
400 | Nieprawidłowe żądanie. |
401 | Niepowodzenie autoryzacji. |
403 | Przekroczono limit przydziału lub zbyt duży komunikat. |
410 | Określona kolejka lub temat nie istnieje. |
500 | Błąd wewnętrzny. |
Aby uzyskać informacje o kodach stanu, zobacz Status and Error Codes (Kody stanu i błędów).
Nagłówki odpowiedzi
Typ zawartości w postaci przekazanej.
Treść odpowiedzi
Brak.
Przykład
Następujące żądanie HTTP wysyła komunikat do kolejki lub tematu. Komunikat ma następujące właściwości:
Label: "M1"
TimeToLive: 10 seconds
State: Active
Message body: "This is a message."
Oprócz BrokeredProperties
elementu komunikat zawiera następujące właściwości niestandardowe: Priority=High
i 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.
Usługa Service Bus zwraca następującą odpowiedź:
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