Forum Discussion
Has anyone got this to work - sending request to SendMessage to SQS?
I am evaluating ReadyAPI to move from Postman and need to send messages onto an SQS queue.
Using a get request as described here
Created an AWS Signature Profile as per https://support.smartbear.com/readyapi/docs/projects/requests/auth/types/aws.html
Cannot get anything other than "The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details." when sending from ReadyAPI.
Using the same request and AWS IAM credentials in Postman allows messages to be posted to the queue.
The only difference I can see is that in the headers, ReadyAPI adds x-amz-content-sha256 to the header, whereas Postman (which works) does not create or add this.
Both are sending the Authorization header as below
Postman (works)
Authorization: AWS4-HMAC-SHA256 Credential=XXXXXXXXXXXXXXXXXXXX/20190116/eu-west-1/sqs/aws4_request, SignedHeaders=content-type;host;x-amz-date,
Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ReadyAPI (not working)
Authorization: AWS4-HMAC-SHA256 Credential=XXXXXXXXXXXXXXXXXXXX/20190116/eu-west-1/sqs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Is the inclusion of the x-amz-content-sha256 in the signature generation significant?
Grateful for any pointers,
Phil
Found below code samples to do the same in Java. So that should work mostly as is in Groovy too.
Please go thru it if not already.
https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-sqs-messages.html