Sample code for 30+ languages & platforms
React Native

SQS Receive Message

See more Amazon SQS Examples

Retrieves one or more messages from an Amazon SQS queue, with a maximum limit of 10 messages, from the specified queue.

See SQS ReceiveMessage or detailed information.

Chilkat React Native Downloads

React Native
import { AuthAws, Rest, Xml } from '@chilkat/react-native'

async function chilkatExample() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  const rest = new Rest();

  // Connect to the Amazon AWS REST server.
  // such as https://sqs.us-west-2.amazonaws.com/
  const bTls = true;
  const port = 443;
  const bAutoReconnect = true;
  await rest.connectAsync('sqs.us-west-2.amazonaws.com', port, bTls, bAutoReconnect);

  // Provide AWS credentials for the REST call.
  const authAws = new AuthAws();
  authAws.accessKey = 'AWS_ACCESS_KEY';
  authAws.secretKey = 'AWS_SECRET_KEY';
  // the region should match our URL above..
  authAws.region = 'us-west-2';
  authAws.serviceName = 'sqs';

  rest.setAuthAws(authAws);

  rest.addQueryParam('Action', 'ReceiveMessage');
  rest.addQueryParam('MaxNumberOfMessages', '5');
  rest.addQueryParam('VisibilityTimeout', '15');
  rest.addQueryParam('AttributeName', 'All');
  rest.addQueryParam('MessageAttributeName', 'All');

  // Use the actual path part of your SQS queue URL here:
  let responseXml: string;
  try {
    responseXml = await rest.fullRequestNoBodyAsync('GET', '/123456789123/chilkatTest');
  } catch {
    console.log(rest.lastErrorText);
    return;
  }

  // A successful response will have a status code equal to 200.
  if (rest.responseStatusCode !== 200) {
    console.log(`response status code = ${rest.responseStatusCode}`);
    console.log(`response status text = ${rest.responseStatusText}`);
    console.log(`response header: ${rest.responseHeader}`);
    console.log(`response body: ${responseXml}`);
    return;
  }

  // Examine the successful XML response.
  const xml = new Xml();
  xml.loadXml(responseXml);
  console.log(xml.getXml());
  console.log('----');

  // A successful response looks like this:
  // <?xml version="1.0" encoding="utf-8" ?>
  // <ReceiveMessageResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
  //     <ReceiveMessageResult>
  //         <Message>
  //             <Body>this is a test</Body>
  //             <MD5OfBody>54b0c58c7ce9f2a8b551351102ee0938</MD5OfBody>
  //             <ReceiptHandle>AQEBMyLof...UbKBTvHtEg==</ReceiptHandle>
  //             <Attribute>
  //                 <Name>SenderId</Name>
  //                 <Value>957491831129</Value>
  //             </Attribute>
  //             <Attribute>
  //                 <Name>ApproximateFirstReceiveTimestamp</Name>
  //                 <Value>1475013283557</Value>
  //             </Attribute>
  //             <Attribute>
  //                 <Name>ApproximateReceiveCount</Name>
  //                 <Value>4</Value>
  //             </Attribute>
  //             <Attribute>
  //                 <Name>SentTimestamp</Name>
  //                 <Value>1475013283557</Value>
  //             </Attribute>
  //             <MessageId>52882c65-5e21-4450-9024-93a3b01e61d3</MessageId>
  //             <MD5OfMessageAttributes>2ff68603f4239272bd03f543254ed040</MD5OfMessageAttributes>
  //         </Message>
  //     </ReceiveMessageResult>
  //     <ResponseMetadata>
  //         <RequestId>05ba5c92-80ee-5f87-be76-0cf67b7475d6</RequestId>
  //     </ResponseMetadata>
  // </ReceiveMessageResponse>

  // Get some values from the XML:
  console.log(`Body: ${xml.chilkatPath('ReceiveMessageResult|Message|Body|*')}`);
  console.log(`MessageId: ${xml.chilkatPath('ReceiveMessageResult|Message|MessageId|*')}`);

  const unused = xml.chilkatPath('ReceiveMessageResult|Message[0]|Attribute|$');

  let rec = xml.findNextRecord('Name', 'SenderId');
  console.log(`SenderId: ${rec.getChildContent('Value')}`);

  rec = xml.findNextRecord('Name', 'ApproximateFirstReceiveTimestamp');
  console.log(`ApproximateFirstReceiveTimestamp: ${rec.getChildContent('Value')}`);

  rec = xml.findNextRecord('Name', 'ApproximateReceiveCount');
  console.log(`ApproximateReceiveCount: ${rec.getChildContent('Value')}`);

  rec = xml.findNextRecord('Name', 'SentTimestamp');
  console.log(`SentTimestamp: ${rec.getChildContent('Value')}`);

  xml.getRoot2();
}