title: SendMessage to SQS with HTTPS JSON body
body: <p>I would like to send a HTTPS JSON POST request to AWS SQS, rather than url-encoded. I would like for the whole request, including the Action, the Attributes, the MessageBody, etc. to be within one JSON object.</p>
  
  <p>I am currently trying to do so in Postman. When I do so with a url-encoded body that looks like:</p>
  
  <pre><code>Action=SendMessage&amp;MessageBody=Somemessage
  &amp;Expires=2020-10-15T12%3A00%3A00Z
  &amp;Version=2012-11-05
  </code></pre>
  
  <p>I get:</p>
  
  <pre><code>&lt;?xml version="1.0"?&gt;
  &lt;SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"&gt;
      &lt;SendMessageResult&gt;
          &lt;MessageId&gt;someid&lt;/MessageId&gt;
          &lt;MD5OfMessageBody&gt;somemd5&lt;/MD5OfMessageBody&gt;
      &lt;/SendMessageResult&gt;
      &lt;ResponseMetadata&gt;
          &lt;RequestId&gt;somerequestid&lt;/RequestId&gt;
      &lt;/ResponseMetadata&gt;
  &lt;/SendMessageResponse&gt;
  </code></pre>
  
  <p>When I do so with a JSON body that looks like:</p>
  
  <pre><code>{
  "Action":"SendMessage",
  "MessageBody":"Somejsonmessage",
  "Expires":"2020-10-15T12:00:00",
  "Version":"2012-11-05"
  }
  </code></pre>
  
  <p>I get:</p>
  
  <pre><code>&lt;AccessDeniedException&gt;
    &lt;Message&gt;Unable to determine service/operation name to be authorized&lt;/Message&gt;
  &lt;/AccessDeniedException&gt;
  </code></pre>
  
  <p>If I change this to:</p>
  
  <pre><code>Action=SendMessage&amp;MessageBody={
  "Action":"SendMessage",
  "MessageBody":"Somejsonmessage",
  "Expires":"2020-10-15T12:00:00",
  "Version":"2012-11-05"
  }
  </code></pre>
  
  <p>It works again, but I want to send the whole message as one JSON object.</p>
  
  <p>I have been unable to find out whether or not using a JSON request body is actually legal. Their examples use url-encoded. Is sending a JSON request body legal for AWS SQS? Can you provide me an example?</p>
  
  <p>Thanks.</p>