0

我对 Amazon SQS 和 Zend(1.11.2) 有一个相当令人费解的问题。我正在向我设置的队列发送一条消息,该消息如下所示:

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

消息进入远端的应用程序,被视为:

"opt1%3Dfoo+opt2%3Dbar"

接收应用程序是使用 com.xerox.amazonws.sqs2 库以 Java 编写的,现在已投入生产。

在 Drupal 下使用 Tarzan 的旧 php 模块中有类似的发送代码,效果很好。我到处搜索并阅读了 Zend、Amazon 和 Java 库的文档,但我被困住了。

字符串的编码是可以理解的,但我不认识正在使用的方法。进一步的测试表明,单引号、尖括号等也被转义为十六进制。

有任何想法吗?

4

1 回答 1

0

Typica (com.xerox.amazonaws) has a 'encoded' option that internally uses Base64 to encode messages. This is on by default.

In general, we have found that encoding messages using Base64 is less troublesome then URL/percent encoding when using SQS.

I would Base64 the message text in PHP, write it to the queue, and Typica should decode just fine using the default config.

于 2011-03-20T23:15:14.523 回答