Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Envoie un message à une file d’attente ou une rubrique Service Bus.
Demander
| Méthode | URI de requête | Version de HTTP |
|---|---|---|
| PUBLIER | 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 requête obligatoires et 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 du message). |
BrokerProperties |
Jeu encodé json de propriétés BrokeredMessage. |
x-ms-retrypolicy |
(Facultatif) Définissez la valeur NoRetry pour désactiver les nouvelles tentatives automatiques lors des opérations d’envoi lorsque des erreurs temporaires se produisent. |
Note
Deux types d’en-tête personnalisé sont acceptés mais n’arrivent pas comme propriétés personnalisées. Un en-tête dont le nom correspond à l’un des noms réservés par le service pour l’utilisation du protocole est supprimé, et la correspondance est insensible aux majuscules. Un en-tête dont la valeur est la chaîne null littérale est également supprimé, donc si une propriété personnalisée n’arrive pas, vérifiez d’abord la valeur que vous avez envoyée et envoyez autre chose que null. Sinon, renommer l’en-tête et renvoyer, car une collision de nom avec un en-tête réservé en est la cause.
Corps de la demande
Le corps de la requête 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 génère le corps du 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)));
Réponse
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 envoyé avec succès à la file d’attente ou à la 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 d’état, consultez Status and Error Codes.
Note
Si vous recevez une réponse 401 Non autorisé, vérifiez que le jeton SAS dans l’en-tête Authorization est correctement construit, signé, encodé en URL et qu’il correspond à l’URI exact de l’entité Service Bus.
En-têtes de réponse
de type contenu tel qu’il est passé.
Corps de la réponse
Aucun.
Exemple
La requête HTTP suivante envoie un message à 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."
Outre le 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