你当前正在访问 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