Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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:
|
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
| Code | 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.
Uwaga / Notatka
Jeśli otrzymasz nieautoryzowaną odpowiedź 401, sprawdź, czy token SAS w nagłówku autoryzacji jest poprawnie skonstruowany, podpisany, zakodowany w adresie URL i zgodny z dokładnym identyfikatorem URI jednostki Service Bus.
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