Я бы хотел отправить запрос HTTPS JSON POST в AWS SQS, а не в URL-кодировке. Я хотел бы, чтобы весь запрос, включая Action, Attributes, MessageBody и т. Д., Находился в одном объекте JSON.
Я сейчас пытаюсь сделать это в Почтальоне. Когда я делаю это с URL-адресом тела, которое выглядит как:
Action=SendMessage&MessageBody=Somemessage
&Expires=2020-10-15T12%3A00%3A00Z
&Version=2012-11-05
Я получаю:
<?xml version="1.0"?>
<SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
<SendMessageResult>
<MessageId>someid</MessageId>
<MD5OfMessageBody>somemd5</MD5OfMessageBody>
</SendMessageResult>
<ResponseMetadata>
<RequestId>somerequestid</RequestId>
</ResponseMetadata>
</SendMessageResponse>
Когда я делаю это с телом JSON, которое выглядит следующим образом:
{
"Action":"SendMessage",
"MessageBody":"Somejsonmessage",
"Expires":"2020-10-15T12:00:00",
"Version":"2012-11-05"
}
Я получаю:
<AccessDeniedException>
<Message>Unable to determine service/operation name to be authorized</Message>
</AccessDeniedException>
Если я изменю это на:
Action=SendMessage&MessageBody={
"Action":"SendMessage",
"MessageBody":"Somejsonmessage",
"Expires":"2020-10-15T12:00:00",
"Version":"2012-11-05"
}
Это снова работает, но я хочу отправить сообщение целиком как один объект JSON.
Мне не удалось выяснить, действительно ли использование тела запроса JSON действительно допустимо. В их примерах используется URL-кодировка. Является ли отправка тела запроса JSON законной для AWS SQS? Можете ли вы дать мне пример?
Спасибо.