Udostępnij za pośrednictwem


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 BrokeredPropertieselementu 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  

Zobacz też

Przykład klienta HTTP usługi Service Bus