我在Web服务器中安装了AWS SDK for PHP,可以创建队列,发送/删除测试消息。然后我尝试检查是否可以使用curl发送json(文本或对象)。不知何故,它没有得到消息。如果我将'MessageBody'中的变量($ json)更改为字符串并手动运行php脚本,则字符串将转发到队列。有什么想法吗?
<?php
require 'SQS/aws-autoloader.php';
use Aws\Sqs\SqsClient;
use Aws\Exception\AwsException;
header("Content-Type: application/json");
$json = file_get_contents('php://input');
error_log( print_r( $json, true ));
$client = new SqsClient([
'profile' => 'default',
'region' => 'us-east-1',
'version' => 'latest'
]);
$client->sendMessage(array(
'QueueUrl' => "https://sqs.us-east-1.amazonaws.com/xxxxxxxxxx/xxxxxxxxxx",
'MessageBody' => $json
));
以下是cURL请求:
curl -v http://xx.xxx.xxx.xxx/somesite/somescript.php -d'{“hello”:“world”}' - H“Content-Type:application / json”