メッセージを送信する

Service Bus キューまたはトピックにメッセージを送信します。

Request

Method 要求 URI HTTP バージョン
POST http{s}://{serviceNamespace}.servicebus.windows.net/{queuePath|topicPath}/messages|HTTP/1.1

要求ヘッダー

必須要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。 ヘッダーには、記載されているプロパティに加えて、カスタム プロパティが含まれる場合があります。 例を参照してください。

要求ヘッダー 説明
Authorization 次のいずれかのトークン値を指定します。
  • 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 トークンの生成の詳細については、「 Shared Access Signature トークンの生成 」および 「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 状態コードおよび一連の応答ヘッダーが含まれています。

応答コード

コード 説明
201 メッセージはキューまたはトピックに正常に送信されました。
400 無効な要求です。
401 認証エラー。
403 クォータを超過したか、メッセージが大きすぎます。
410 指定されたキューまたはトピックが存在しません。
500 内部エラーです。

状態コードの詳細については、「 状態コードとエラー コード」を参照してください。

レスポンス ヘッダー

渡された Content-type

応答本文

[なし] :

次の HTTP 要求は、メッセージをキューまたはトピックに送信します。 このメッセージには、以下のプロパティがあります。

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

BrokeredProperties加えて、メッセージには、次のカスタム プロパティと Customer="12345,ABC"が含まれますPriority=High

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.  

Service Bus は次の応答を返します。

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  

参照

Service Bus HTTP クライアントのサンプル