2016-11-11 4 views
4

私のリクエストをBase64にエンコードする可能性はなく、ドキュメントによれば必要ないはずですが、わかりません。REST:ベースラインエンコーディングなしでAzureストレージキューにメッセージを追加しますか?

私はそれがうまく働いてエンコードするbase64の場合:ドキュメント(https://msdn.microsoft.com/sv-se/library/azure/dd179346.aspx

メッセージによると

<sample>sample message</sample> 

:キューにデコードされたメッセージを追加します

<QueueMessage> 
<MessageText>PHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg==</MessageText> 
</QueueMessage> 

UTF-8エンコーディングのXMLリクエスト に含めることができる形式である必要があります。メッセージにマークアップを含めるには、 の内容をXMLエスケープまたはBase64エンコードのいずれかにする必要があります。エスケープまたはエンコードされていないメッセージのXML マークアップは、メッセージがキューに追加される前に が削除されます。それだけで応答キューにメッセージを表示しようとするとき

&lt;sample&gt;sample message&lt;/sample&gt; 

は成功しますが::

入力されていない

(代わりにPHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg ==の)を追加しようとすると有効なBase-64ストリングには、ベース以外の64 文字、2つ以上のパディング文字、または無効な文字の が含まれています。

生のxmlエスケープ要求メッセージをストレージキューに送信する方法を知っていますか? (キーと名前なし)

全要求:

POST https://xxxxxxx.queue.core.windows.net/testqueue/messages?sv=2015-04-05&ss=q&srt=sco&sp=a&se=2026-11-11T20:24:03Z&st=2016-11-11T12:24:03Z&spr=https&sig=xxxxxxxxxxxxxxxxx%3D HTTP/1.1 
User-Agent: Fiddler 
Host: XXXXX.queue.core.windows.net 
Content-Type: text/plain 
Content-Length: 64 

<QueueMessage> 
<MessageText>&lt;sample&gt;sample message&lt;/sample&gt;</MessageText> 
</QueueMessage> 
+0

どのようにメッセージを表示していますか?あなたはそれのためのいくつかのツールを使用していますか? –

+0

Visual Studio(2015)から表示しています。Cloud Explorer – thllbrg

+0

これはCloud Explorerの問題です。あなたは他のツールでメッセージを見てみることができますか? –

答えて

1

メッセージが保存キューから返されたので、私はAsStringプロパティを呼び出しフォーマットエラーを得ていたが、デフォルトでは、base64では、エンコードされました。

CloudQueueオブジェクトには、trueに設定されたEncodeMessageプロパティがあります。それを偽に変更し、すべてが機能しました。私のコードは次のとおりです。

クライアントキューの名前は、Azureのキューの名前を保持する文字列です。あなたのケースでは、送信する前にプロパティをfalseに設定する必要があると私は考えています。

関連する問題