0

Amazon SQS と Zend(1.11.2) にはやや不可解な問題があります。次のような snip-it でセットアップしたキューにメッセージを送信しています。

$sqs->send($queueURL, "opt1=foo opt2=bar");

メッセージは反対側のアプリに届き、次のように表示されます。

"opt1%3Dfoo+opt2%3Dbar"

受信アプリは、com.xerox.amazonws.sqs2 ライブラリを使用して Java で記述されており、現在運用中です。

Drupal の下で Tarzan を使用する古い php モジュールには、問題なく動作する同様の送信コードがありました。高低を検索し、Zend、Amazon、および Java ライブラリのドキュメントを読みましたが、行き詰まっています。

文字列のエンコーディングは理解できますが、使用されている方法がわかりません。さらにテストを行うと、一重引用符、山かっこなども 16 進数としてエスケープされることがわかりました。

何か案は?

ケン

4

1 に答える 1

0

Typica (com.xerox.amazonaws) には、Base64 を内部的に使用してメッセージをエンコードする「 encoded 」オプションがあります。これはデフォルトでオンになっています。

一般に、Base64 を使用したメッセージのエンコードは、SQS を使用する場合の URL/パーセント エンコードよりも問題が少ないことがわかっています。

PHP でメッセージ テキストを Base64 にしてキューに書き込むと、Typica はデフォルトの構成を使用して問題なくデコードできるはずです。

于 2011-03-20T23:15:14.523 に答える