接收並刪除訊息 (破壞性讀取)

此作業會在一個不可部分完成的作業中從佇列或訂閱接收訊息,然後從該佇列或訂閱中移除訊息。

要求

方法 要求 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

要求標頭

下表描述必要的和選用的要求標頭。 除了列出的屬性以外,標頭還可包含自訂屬性。 請參閱範例。

要求標頭 描述
授權 指定下列其中一個權杖值:
  • Azure Active Directory (Azure AD) JSON Web 權杖 (JWT) 權杖。
    範例: Authorization: Bearer <Azure AD JWT token>.
    如需產生 Azure AD 權杖的資訊,請參閱 從應用程式進行驗證
  • SAS 權杖。
    範例: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    如需產生 SAS 權杖的資訊,請參閱 產生共用存取簽章權杖產生 SAS 權杖

要求本文

無。

回應

回應包括 HTTP 狀態碼和一組回應標頭。

回應碼

程式碼 描述
200 已順利擷取和刪除訊息。
204 在指定的逾時期間內沒有可用的訊息。
400 不正確的要求。
401 授權失敗。
410 指定的佇列或訂閱不存在。
500 內部錯誤。

如需狀態碼的相關資訊,請參閱 狀態和錯誤碼

回應標頭

這項作業的回應包括下列標頭。 回應也可能包括其他標準 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協定規格

回應本文

回應內文是已擷取訊息的訊息內文。

範例

下列 HTTP 要求會接收並刪除佇列中的訊息:

DELETE 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 200 OK  
Transfer-Encoding: chunked  
Content-Type: application/atom+xml;type=entry;charset=utf-8  
Server: Microsoft-HTTPAPI/2.0  
BrokerProperties: {"DeliveryCount":1,"EnqueuedSequenceNumber":0,"EnqueuedTimeUtc":"Tue, 01 Jul 2014 23:00:23 GMT","Label":"M1","MessageId":"3a146f76afee41648677887ffced72d8","SequenceNumber":1,"State":"Active","TimeToLive":10}  
Priority: "High"  
Customer: "12345,ABC"  
Date: Tue, 01 Jul 2014 23:00:23 GMT  
  
12  
This is a message.  
0  

另請參閱

服務匯流排 HTTP 用戶端範例