Perl Requires Chilkat v9.5.0.65+
Chilkat2 Perl
Azure Service Bus - Create Queue
See more Azure Service Bus Examples
Creates an Azure Service Bus Queue.Chilkat Perl Downloads
use strict;
use warnings;
use Chilkat2;
# 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.
my $rest = Chilkat2::Rest->new;
my $bAutoReconnect = 1;
my $success = $rest->Connect('<yournamespace>.servicebus.windows.net', 443, 1, $bAutoReconnect);
if (!$success) {
print $rest->LastErrorText, "\n";
exit;
}
# ----------------------------------------------------------------------------------------------
# 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.
my $sbToken = Chilkat2::StringBuilder->new;
$sbToken->LoadFile('qa_data/tokens/serviceBusSas.txt', 'utf-8');
# Tell the REST object to use the Azure Shared Access Signature for authorization.
$sbToken->Prepend('SharedAccessSignature ');
$rest->AddHeader('Authorization', $sbToken->GetAsString());
# ----------------------------------------------------------------------------------------------
# Create a new queue named "fox";
my $queueName = 'fox';
# Create the XML body of the PUT request.
my $xml = Chilkat2::Xml->new;
$xml->Tag('entry');
$xml->AddAttribute('xmlns', 'http://www.w3.org/2005/Atom');
$xml->UpdateAttrAt('title', 1, 'type', 'text');
$xml->UpdateChildContent('title', $queueName);
$xml->UpdateAttrAt('content', 1, 'type', 'application/xml');
$xml->UpdateAttrAt('content|QueueDescription', 1, 'xmlns:i', 'http://www.w3.org/2001/XMLSchema-instance');
$xml->UpdateAttrAt('content|QueueDescription', 1, 'xmlns', 'http://schemas.microsoft.com/netservices/2010/10/servicebus/connect');
$xml->EmitXmlDecl(0);
print $xml->GetXml(), "\n";
# 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>
my $sbRequestBody = Chilkat2::StringBuilder->new;
$xml->GetXmlSb($sbRequestBody);
# The path should be set to the to-be-created queue name.
my $sbPath = Chilkat2::StringBuilder->new;
$sbPath->Append('/');
$sbPath->Append($queueName);
my $sbResponseBody = Chilkat2::StringBuilder->new;
$success = $rest->FullRequestSb('PUT', $sbPath->GetAsString(), $sbRequestBody, $sbResponseBody);
if (!$success) {
print $rest->LastErrorText, "\n";
exit;
}
print 'Response Status Code = ', $rest->ResponseStatusCode, "\n";
# Check for a success response.
if ($rest->ResponseStatusCode != 201) {
print $rest->LastRequestStartLine, "\n";
print $rest->LastRequestHeader, "\n";
print $sbResponseBody->GetAsString(), "\n";
print "Failed.\n";
exit;
}
# The response is XML. (See a sample response below..)
$xml->LoadSb($sbResponseBody, 1);
print $xml->GetXml(), "\n";
print "Success.\n";
# -----------------------------------------------
# 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>