Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) SQS Receive MessageRetrieves 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.
IncludeFile "CkXml.pb" IncludeFile "CkAuthAws.pb" IncludeFile "CkRest.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Connect to the Amazon AWS REST server. ; such as https://sqs.us-west-2.amazonaws.com/ bTls.i = 1 port.i = 443 bAutoReconnect.i = 1 success.i = CkRest::ckConnect(rest,"sqs.us-west-2.amazonaws.com",port,bTls,bAutoReconnect) ; Provide AWS credentials for the REST call. authAws.i = CkAuthAws::ckCreate() If authAws.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkAuthAws::setCkAccessKey(authAws, "AWS_ACCESS_KEY") CkAuthAws::setCkSecretKey(authAws, "AWS_SECRET_KEY") ; the region should match our URL above.. CkAuthAws::setCkRegion(authAws, "us-west-2") CkAuthAws::setCkServiceName(authAws, "sqs") CkRest::ckSetAuthAws(rest,authAws) CkRest::ckAddQueryParam(rest,"Action","ReceiveMessage") CkRest::ckAddQueryParam(rest,"MaxNumberOfMessages","5") CkRest::ckAddQueryParam(rest,"VisibilityTimeout","15") CkRest::ckAddQueryParam(rest,"AttributeName","All") CkRest::ckAddQueryParam(rest,"MessageAttributeName","All") ; Use the actual path part of your SQS queue URL here: responseXml.s = CkRest::ckFullRequestNoBody(rest,"GET","/123456789123/chilkatTest") If CkRest::ckLastMethodSuccess(rest) <> 1 Debug CkRest::ckLastErrorText(rest) CkRest::ckDispose(rest) CkAuthAws::ckDispose(authAws) ProcedureReturn EndIf ; A successful response will have a status code equal to 200. If CkRest::ckResponseStatusCode(rest) <> 200 Debug "response status code = " + Str(CkRest::ckResponseStatusCode(rest)) Debug "response status text = " + CkRest::ckResponseStatusText(rest) Debug "response header: " + CkRest::ckResponseHeader(rest) Debug "response body: " + responseXml CkRest::ckDispose(rest) CkAuthAws::ckDispose(authAws) ProcedureReturn EndIf ; Examine the successful XML response. xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadXml(xml,responseXml) Debug CkXml::ckGetXml(xml) Debug "----" ; 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: Debug "Body: " + CkXml::ckChilkatPath(xml,"ReceiveMessageResult|Message|Body|*") Debug "MessageId: " + CkXml::ckChilkatPath(xml,"ReceiveMessageResult|Message|MessageId|*") unused.s = CkXml::ckChilkatPath(xml,"ReceiveMessageResult|Message[0]|Attribute|$") rec.i = CkXml::ckFindNextRecord(xml,"Name","SenderId") Debug "SenderId: " + CkXml::ckGetChildContent(rec,"Value") CkXml::ckDispose(rec) rec = CkXml::ckFindNextRecord(xml,"Name","ApproximateFirstReceiveTimestamp") Debug "ApproximateFirstReceiveTimestamp: " + CkXml::ckGetChildContent(rec,"Value") CkXml::ckDispose(rec) rec = CkXml::ckFindNextRecord(xml,"Name","ApproximateReceiveCount") Debug "ApproximateReceiveCount: " + CkXml::ckGetChildContent(rec,"Value") CkXml::ckDispose(rec) rec = CkXml::ckFindNextRecord(xml,"Name","SentTimestamp") Debug "SentTimestamp: " + CkXml::ckGetChildContent(rec,"Value") CkXml::ckDispose(rec) CkXml::ckGetRoot2(xml) CkRest::ckDispose(rest) CkAuthAws::ckDispose(authAws) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.