SendMessage для SQS с телом HTTPS JSON - PullRequest
0 голосов
/ 09 мая 2018

Я бы хотел отправить запрос 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? Можете ли вы дать мне пример?

Спасибо.

1 Ответ

0 голосов
/ 09 мая 2018

Отправка JSON в закодированном URL не является незаконной. Это определяется заголовком типа контента. См. URL-кодированный против JSON

...