Visual FoxPro
Visual FoxPro
Azure Service Bus - Create Queue
See more Azure Service Bus Examples
Creates an Azure Service Bus Queue.Note: This example requires Chilkat v9.5.0.65 or greater.
Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loRest
LOCAL lnBAutoReconnect
LOCAL loSbToken
LOCAL lcQueueName
LOCAL loXml
LOCAL loSbRequestBody
LOCAL loSbPath
LOCAL loSbResponseBody
lnSuccess = 0
* Note: Requires Chilkat v9.5.0.65 or greater.
* This requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
* Make the initial connection.
* A single REST object, once connected, can be used for many Azure Service Bus REST API calls.
* The auto-reconnect indicates that if the already-established HTTPS connection is closed,
* then it will be automatically re-established as needed.
loRest = CreateObject('Chilkat.Rest')
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("<yournamespace>.servicebus.windows.net",443,1,lnBAutoReconnect)
IF (lnSuccess <> 1) THEN
? loRest.LastErrorText
RELEASE loRest
CANCEL
ENDIF
* ----------------------------------------------------------------------------------------------
* The code above this comment could be placed inside a function/subroutine within the application
* because the connection does not need to be made for every request. Once the connection is made
* the app may send many requests..
* ----------------------------------------------------------------------------------------------
* Let's load a previously computed SAS token and use it.
* See Azure Shared Access Signature for an example to genenerate an Azure SAS token.
loSbToken = CreateObject('Chilkat.StringBuilder')
loSbToken.LoadFile("qa_data/tokens/serviceBusSas.txt","utf-8")
* Tell the REST object to use the Azure Shared Access Signature for authorization.
loSbToken.Prepend("SharedAccessSignature ")
loRest.AddHeader("Authorization",loSbToken.GetAsString())
* ----------------------------------------------------------------------------------------------
* Create a new queue named "fox";
lcQueueName = "fox"
* Create the XML body of the PUT request.
loXml = CreateObject('Chilkat.Xml')
loXml.Tag = "entry"
loXml.AddAttribute("xmlns","http://www.w3.org/2005/Atom")
loXml.UpdateAttrAt("title",1,"type","text")
loXml.UpdateChildContent("title",lcQueueName)
loXml.UpdateAttrAt("content",1,"type","application/xml")
loXml.UpdateAttrAt("content|QueueDescription",1,"xmlns:i","http://www.w3.org/2001/XMLSchema-instance")
loXml.UpdateAttrAt("content|QueueDescription",1,"xmlns","http://schemas.microsoft.com/netservices/2010/10/servicebus/connect")
loXml.EmitXmlDecl = 0
? loXml.GetXml()
* The XML created by the above code:
* <entry xmlns="http://www.w3.org/2005/Atom">
* <title type="text">fox</title>
* <content type="application/xml">
* <QueueDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
* xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" />
* </content>
* </entry>
loSbRequestBody = CreateObject('Chilkat.StringBuilder')
loXml.GetXmlSb(loSbRequestBody)
* The path should be set to the to-be-created queue name.
loSbPath = CreateObject('Chilkat.StringBuilder')
loSbPath.Append("/")
loSbPath.Append(lcQueueName)
loSbResponseBody = CreateObject('Chilkat.StringBuilder')
lnSuccess = loRest.FullRequestSb("PUT",loSbPath.GetAsString(),loSbRequestBody,loSbResponseBody)
IF (lnSuccess <> 1) THEN
? loRest.LastErrorText
RELEASE loRest
RELEASE loSbToken
RELEASE loXml
RELEASE loSbRequestBody
RELEASE loSbPath
RELEASE loSbResponseBody
CANCEL
ENDIF
? "Response Status Code = " + STR(loRest.ResponseStatusCode)
* Check for a success response.
IF (loRest.ResponseStatusCode <> 201) THEN
? loRest.LastRequestStartLine
? loRest.LastRequestHeader
? loSbResponseBody.GetAsString()
? "Failed."
RELEASE loRest
RELEASE loSbToken
RELEASE loXml
RELEASE loSbRequestBody
RELEASE loSbPath
RELEASE loSbResponseBody
CANCEL
ENDIF
* The response is XML. (See a sample response below..)
loXml.LoadSb(loSbResponseBody,1)
? loXml.GetXml()
? "Success."
* -----------------------------------------------
* A sample successful XML response:
* <entry xmlns="http://www.w3.org/2005/Atom">
* <id>https://chilkat.servicebus.windows.net/fox</id>
* <title type="text">fox</title>
* <published>2016-12-01T00:37:57Z</published>
* <updated>2016-12-01T00:37:57Z</updated>
* <author>
* <name>chilkat</name>
* </author>
* <link rel="self" href="https://chilkat.servicebus.windows.net/fox" />
* <content type="application/xml">
* <QueueDescription xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
* <LockDuration>PT1M</LockDuration>
* <MaxSizeInMegabytes>1024</MaxSizeInMegabytes>
* <RequiresDuplicateDetection>false</RequiresDuplicateDetection>
* <RequiresSession>false</RequiresSession>
* <DefaultMessageTimeToLive>P10675199DT2H48M5.4775807S</DefaultMessageTimeToLive>
* <DeadLetteringOnMessageExpiration>false</DeadLetteringOnMessageExpiration>
* <DuplicateDetectionHistoryTimeWindow>PT10M</DuplicateDetectionHistoryTimeWindow>
* <MaxDeliveryCount>10</MaxDeliveryCount>
* <EnableBatchedOperations>true</EnableBatchedOperations>
* <SizeInBytes>0</SizeInBytes>
* <MessageCount>0</MessageCount>
* <CreatedAt>2016-12-01T00:37:57.66</CreatedAt>
* <UpdatedAt>2016-12-01T00:37:57.677</UpdatedAt>
* </QueueDescription>
* </content>
* </entry>
RELEASE loRest
RELEASE loSbToken
RELEASE loXml
RELEASE loSbRequestBody
RELEASE loSbPath
RELEASE loSbResponseBody