共用方式為


傳送訊息

將訊息傳送至服務總線佇列或主題。

請求

方法 要求 URI HTTP 版本
發佈 http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages HTTP/1.1

要求標頭

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

要求標頭 描述
Authorization 指定下列其中一個權杖值:
  • Microsoft Entra JSON Web Token (JWT) Token。
    範例: Authorization: Bearer <Azure AD JWT token>.
    如需產生Microsoft Entra 令牌的資訊,請參閱從應用程式 驗證。
  • SAS 令牌。
    範例: Authorization: SharedAccessSignature sr=<NAMESPACE NAME>.servicebus.windows.net&sig=<SHARED ACCESS KEY>&se=<TOKEN EXPIRY INSTANT>&skn=<SHARED KEY NAME>.
    如需產生 SAS 令牌的資訊,請參閱 產生共用存取簽章令牌產生 SAS 令牌
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 狀態代碼和一組響應標頭。

回應碼

Code 描述
201 訊息已成功傳送至佇列或主題。
400 不正確的要求。
401 授權失敗。
403 超過配額或訊息太大。
410 指定的佇列或主題不存在。
500 內部錯誤。

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

備註

如果您收到 401 未授權的回應,請檢查 Authorization 標頭中的 SAS 權杖是否正確建構、簽署、URL 編碼,以及符合服務匯流排實體的確切 URI。

回應標頭

傳入的內容類型

回應本文

沒有。

下列 HTTP 要求會將訊息傳送至佇列或主題。 訊息具有下列屬性:

Label: "M1"  
TimeToLive: 10 seconds  
State: Active  
Message body: "This is a message."  

除了 BrokeredProperties之外,訊息還帶有下列自定義屬性:Priority=HighCustomer="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  

另請參閱