Sample code for 30+ languages & platforms
Perl Requires Chilkat v9.5.0.65+

Azure Service Bus - Create Queue

See more Azure Service Bus Examples

Creates an Azure Service Bus Queue.

Chilkat Perl Downloads

Chilkat2 Perl
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>