Dela via


Skicka meddelande

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

Förfrågan

Metod URI för förfrågan HTTP-version
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1

Rubriker för begäran

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

Begärandehuvud Description
Authorization Ange något av följande tokenvärden:
  • Azure Active Directory-token (Azure AD) JSON-webbtoken (JWT).
    Exempel: Authorization: Bearer <Azure AD JWT token>.
    Information om hur du genererar en Azure AD-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 för att NoRetry inaktivera automatiskt återförsök vid sändningsåtgärder när tillfälliga fel inträffar.

Begärandetext

Begärandetexten är meddelandenyttolasten.

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. 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)));  

Svarsåtgärder

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

Svarskoder

Kod Description
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 Angiven kö eller ämne finns inte.
500 Internt fel.

Information om statuskoder finns i Status och Felkoder.

Svarsrubriker

Innehållstyp som skickas in.

Svarstext

Inga.

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

Service Bus HTTP-klientexempel