Dela via


Skicka meddelande

Skickar ett meddelande till en Service Bus-kö eller ett ämne.

Begäran

Metod Begärande-URI HTTP-version
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages HTTP/1.1

Begärandehuvuden

I följande tabell beskrivs obligatoriska och valfria begärandehuvuden. Förutom de angivna egenskaperna kan rubriken innehålla anpassade egenskaper. Se exemplet.

Begärandehuvud Beskrivning
Authorization Ange något av följande tokenvärden:
  • Microsoft Entra JSON-token för webbtoken (JWT).
    Exempel: Authorization: Bearer <Azure AD JWT token>.
    Information om hur du genererar en Microsoft Entra-token finns i Autentisera från ett program.
  • En SAS-token.
    Exempel: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    Information om hur du genererar en SAS-token finns i Generera en signaturtoken för delad åtkomst och Generera SAS-token.
Content-Type Ange lämplig innehållstyp för den publicerade entitetstexten (meddelandenyttolast).
BrokerProperties JSON-kodad uppsättning BrokeredMessage egenskaper.
x-ms-retrypolicy (Valfritt) Ange till NoRetry för att inaktivera automatiskt återförsök vid sändningsåtgärder när tillfälliga fel inträffar.

Begärandetext

Begärandetexten är meddelandets nyttolast.

Om meddelandet ska tas emot via ett annat protokoll än HTTP/HTTPS måste meddelandetexten serialiseras. till exempel med en XML-System.Runtime.Serialization.DataContractSerializer. Till exempel:

MemoryStream ms = new MemoryStream();  
DataContractSerializer serializer = new DataContractSerializer(typeof(string));  
serializer.WriteObject(ms, "This is a message.");  
byte[] body = ms7.ToArray();  

Föregående kod skapar följande meddelandetext:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">This is a message.</string>  

Du kan ta emot och bearbeta meddelandet med följande kod:

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

Svar

Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.

Svarskoder

Kod Beskrivning
201 Meddelandet har skickats till kö eller ämne.
400 Felaktig begäran.
401 Auktoriseringsfel.
403 Kvoten har överskridits eller meddelandet är för stort.
410 Den angivna kön eller det angivna ämnet finns inte.
500 Internt fel.

Information om statuskoder finns i Status och Felkoder.

Svarshuvuden

innehållstyp som skickas in.

Svarstext

Ingen.

Exempel

Följande HTTP-begäran skickar ett meddelande till en kö eller ett ämne. Meddelandet har följande egenskaper:

Label: "M1"  
TimeToLive: 10 seconds  
State: Active  
Message body: "This is a message."  

Förutom BrokeredPropertiesinnehåller meddelandet följande anpassade egenskaper: Priority=High och 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 returnerar följande svar:

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  

Se även