Envoyer un message
Envoie un message à une file d’attente ou une rubrique Service Bus.
Requête
Méthode | URI de demande | Version HTTP |
---|---|---|
POST | http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1 |
En-têtes de requête
Le tableau suivant décrit les en-têtes de demande obligatoires ou facultatifs. Outre les propriétés répertoriées, l'en-tête peut contenir des propriétés personnalisées. Consultez l'exemple.
En-tête de requête | Description |
---|---|
Authorization |
Spécifiez l’une des valeurs de jeton suivantes :
|
Content-Type |
Définissez le type de contenu approprié pour le corps de l’entité publiée (charge utile de message). |
BrokerProperties |
Ensemble de propriétés BrokeredMessage en code JSON. |
x-ms-retrypolicy |
(Facultatif) Définissez sur NoRetry pour désactiver la nouvelle tentative automatique lors des opérations d’envoi lorsque des erreurs temporaires se produisent. |
Corps de la requête
Le corps de la demande est la charge utile du message.
Si le message doit être reçu via un protocole autre que HTTP/HTTPS, le corps du message doit être sérialisé ; par exemple, avec un xml System.Runtime.Serialization.DataContractSerializer. Par exemple :
MemoryStream ms = new MemoryStream();
DataContractSerializer serializer = new DataContractSerializer(typeof(string));
serializer.WriteObject(ms, "This is a message.");
byte[] body = ms7.ToArray();
Le code précédent produit le corps de message suivant :
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">This is a message.</string>
Vous pouvez recevoir et traiter le message avec le code suivant :
BrokeredMessage message = queueClient.Receive();
string body = message.GetBody<string>(new DataContractSerializer(typeof(string)));
response
La réponse inclut un code d'état HTTP et un ensemble d'en-têtes de réponse.
Codes de réponse
Code | Description |
---|---|
201 | Message correctement envoyé à une file d'attente ou une rubrique. |
400 | Demande incorrecte. |
401 | Échec de l'autorisation. |
403 | Quota dépassé ou message trop volumineux. |
410 | La file d'attente ou la rubrique spécifiée n'existe pas. |
500 | Erreur interne. |
Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.
En-têtes de réponse
Content-type tel qu'il est transmis.
Corps de la réponse
Aucun.
Exemple
La requête HTTP suivante envoie un message vers une file d'attente ou une rubrique. Le message a les propriétés suivantes :
Label: "M1"
TimeToLive: 10 seconds
State: Active
Message body: "This is a message."
En plus de , BrokeredProperties
le message contient les propriétés personnalisées suivantes : Priority=High
et 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 retourne la réponse suivante :
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