Udostępnij za pośrednictwem


Wyślij wiadomość

Wysyła komunikat do kolejki lub tematu usługi Service Bus.

Prosić

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:
  • Token tokenu internetowego JSON (JWT) firmy Microsoft.
    Przykład: Authorization: Bearer <Azure AD JWT token>.
    Aby uzyskać informacje na temat generowania tokenu entra firmy Microsoft, zobacz Uwierzytelnianie na podstawie aplikacji.
  • Token SYGNATURY dostępu współdzielonego.
    Przykład: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Aby uzyskać informacje na temat generowania tokenu SAS, zobacz Generowanie tokenu sygnatury dostępu współdzielonego i Generowanie tokenu SAS.
Content-Type Ustaw odpowiedni typ zawartości dla treści jednostki opublikowanej (ładunek komunikatu).
BrokerProperties Zestaw właściwości BrokeredMessage zakodowany w formacie JSON.
x-ms-retrypolicy (Opcjonalnie) Ustaw wartość na NoRetry, aby wyłączyć automatyczne ponawianie prób przy operacjach wysyłania w przypadku wystąpienia przejściowych błędów.

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 z XML System.Runtime.Serialization.DataContractSerializer. Na 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 tworzy 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ć przy użyciu następującego kodu:

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

Odpowiedź

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 stan i kody błędów.

Nagłówki odpowiedzi

typu zawartości zgodnie z przekazywaniem.

Treść odpowiedzi

Żaden.

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 BrokeredPropertieskomunikat 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ż