你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
发送消息
将消息发送到服务总线队列或主题。
请求
方法 | 请求 URI | HTTP 版本 |
---|---|---|
POST | http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1 |
请求标头
下表介绍必需的和可选的请求标头。 除了所列出的属性外,标头还可以包含自定义属性。 请参阅示例。
请求标头 | 说明 |
---|---|
Authorization |
指定以下标记值之一:
|
Content-Type |
为发布的实体正文设置适当的内容类型, (消息有效负载) 。 |
BrokerProperties |
JSON 编码的 BrokeredMessage 属性集。 |
x-ms-retrypolicy |
(可选) 设置为 NoRetry 可在发生暂时性错误时禁用自动重试发送操作。 |
请求正文
请求正文是消息负载。
如果要通过 HTTP/HTTPS 以外的协议接收消息,则必须序列化消息正文;例如,使用 XML System.Runtime.Serialization.DataContractSerializer。 例如:
MemoryStream ms = new MemoryStream();
DataContractSerializer serializer = new DataContractSerializer(typeof(string));
serializer.WriteObject(ms, "This is a message.");
byte[] body = ms7.ToArray();
上面的代码将生成以下消息正文:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">This is a message.</string>
你可以使用以下代码接收和处理该消息:
BrokeredMessage message = queueClient.Receive();
string body = message.GetBody<string>(new DataContractSerializer(typeof(string)));
响应
响应包括 HTTP 状态代码和一组响应标头。
响应代码
代码 | 说明 |
---|---|
201 | 已成功将消息发送到队列或主题。 |
400 | 请求错误。 |
401 | 授权失败。 |
403 | 超出了配额,或者消息太大。 |
410 | 指定的队列或主题不存在。 |
500 | 内部错误。 |
有关状态代码的信息,请参阅 状态和错误代码。
响应标头
传入的 Content-type。
响应正文
无。
示例
以下 HTTP 请求将向队列或主题发送一条消息。 该消息包含以下属性:
Label: "M1"
TimeToLive: 10 seconds
State: Active
Message body: "This is a message."
除了 , BrokeredProperties
消息还具有以下自定义属性: Priority=High
和 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.
服务总线返回以下响应:
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