你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
此作以原子方式从队列或订阅中检索和锁定消息以供处理。 在队列/订阅说明中指定的锁定持续时间内,保证不会将消息传送到其他接收方(仅在同一队列或订阅上)。 锁过期后,消息将可供其他接收方使用。 为了完成消息处理,接收方应发出包含从此作收到的锁 ID 的删除命令。 若要放弃处理消息并为其他接收方解锁消息,应发出 解锁消息 命令,否则锁定持续时间可能会过期。
此作应在需要 “至少一次” 传递保证的应用程序中使用。 如果接收方在处理成功之前未删除消息,则此作可确保另一个接收方能够在锁定持续时间到期后尝试处理。
请求
方法 | 请求 URI | HTTP 版本 |
---|---|---|
发布 | http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath}/messages/head 或 http{s}://{serviceNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/messages/head|HTTP/1.1 |
请求标头
下表描述了必需和可选的请求标头。 除了列出的属性,标头还可以包含自定义属性。 请参阅示例。
请求标头 | 描述 |
---|---|
授权 | 指定以下标记值之一:
|
请求正文
没有。
响应
响应包括 HTTP 状态代码、一组响应标头和响应正文。
响应代码
法典 | 描述 |
---|---|
201 | 已成功检索和锁定消息。 |
204 | 在指定的超时时间段内没有可用的消息。 |
400 | 请求错误。 |
401 | 授权失败。 |
410 | 指定的队列或订阅不存在。 |
500 | 内部错误。 |
有关状态代码的信息,请参阅 状态和错误代码。
响应标头
此作的响应包括以下标头。 响应还可能包含更标准的 HTTP 标头。 所有标准标头都符合 HTTP/1.1 协议规范。
响应标头 | 描述 |
---|---|
Content-Type |
设置为 application/atom+xml;type=entry;charset=utf-8 。 |
Location |
锁定消息的 URI。 可以使用此 URI 解锁或删除消息。 |
BrokerProperties |
收到的消息的 JSON 编码 BrokerProperties 。
LockToken 属性表示返回的消息的锁 ID。
SequenceNumber 属性表示返回的消息的序列号。 |
响应正文
响应正文是检索到的消息的消息正文。
例
以下 HTTP 请求锁定并从队列返回消息:
POST https://your-namespace.servicebus.windows.net/HttpClientSampleQueue/messages/head?timeout=60 HTTP/1.1
Authorization: SharedAccessSignature sr=your-namespace&sig=Fg8yUyR4MOmXfHfj55f5hY4jGb8x2Yc%2b3%2fULKZYxKZk%3d&se=1404256819&skn=RootManageSharedAccessKey
Host: your-namespace.servicebus.windows.net
Content-Length: 0
服务总线返回以下响应。 该消息包含自定义属性 Priority
和 Customer
:
HTTP/1.1 201 Created
Transfer-Encoding: chunked
Content-Type: application/atom+xml;type=entry;charset=utf-8
Location: https://your-namespace.servicebus.windows.net/httpclientsamplequeue/messages/2/7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547
Server: Microsoft-HTTPAPI/2.0
BrokerProperties: {"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Wed, 02 Jul 2014 01:32:27 GMT","Label":"M1","LockToken":"7da9cfd5-40d5-4bb1-8d64-ec5a52e1c547","LockedUntilUtc":"Wed, 02 Jul 2014 01:33:27 GMT","MessageId":"31907572164743c38741631acd554d6f","SequenceNumber":2,"State":"Active","TimeToLive":10}
Priority: "High"
Customer: "12345,ABC"
Date: Wed, 02 Jul 2014 01:32:27 GMT
12
This is a message.
0